前言
最近开发很多游戏Demo中都有用到游戏摇杆Joystick。个人还是挺喜欢用这个插件的,很方便。今天在这里简单介绍一下。
一、Joystick摇杆类型
Joystick Pack包含多个不同的虚拟游戏杆,可通过简单的拖放轻松在项目中使用(很适合小游戏开发,轻量级别)。
-
动态摇杆 Dynamic Joystick
动态摇杆是识别玩家触摸的地方,从触摸的地方开始,然后随着触摸位置的变化在屏幕上移动。
-
固定摇杆 Fixed Joystick
固定摇杆是当你开发时设置好它在场景中的位置,它就保持在固定位置。玩家在游戏中也只能触摸该位置进行控制。
-
浮动摇杆 Floating Joystick
浮动摇杆是识别玩家按下的地方,保持固定在该位置,直到释放触摸为止。当玩家再次触摸时,位置会重新调整到玩家按下的位置。
-
可变摇杆 Variable Joystick
可变摇杆可以在以上三种模式之间切换。比较适用于游戏中玩家决定使用哪个
二、摇杆基本属性
以可变摇杆为例
-
手柄范围 Handle Range:
从摇杆中心移动到边缘的距离。
-
盲区 Dead Zone:
与中心输入保持的距离,在该盲区半径内不响应拖动事件。
-
轴选项 Axis Options:
摇杆使用哪个轴,水平或垂直,或者两个轴都有使用。
-
Snap X:
将输入沿水平轴对齐到整数值。(1、0或-1)
-
Snap Y:
将输入沿垂直轴对齐到整个值。(1、0或-1)
-
移动阈值 Move Threshold:
该属性适用于摇杆类型为动态Dynamic。
当中心输入开始移动之前,必须与摇杆保持的一定距离。
-
摇杆类型Joystick Type:
只可变摇杆有该功能。可以设置当前的摇杆类型。
例如将摇杆设置为固定模式,代码如下:
variableJoystick.SetMode(JoystickType.Fixed);
-
背景 Background:
背景对象上的RectTransform组件。
可以通过Image组件的Source Image改变摇杆背景的样式。
-
摇杆 Handle:
摇杆柄对象上的RectTransform组件。
可以通过Image组件的Source Image改变摇杆柄的样式。
三、摇杆使用方法
1.将摇杆添加到场景中
找到Joystick Pack下Prefabs文件夹,选择要使用的摇杆并将其拖到场景中。记住哦,它是UI元素,要确保它在画布中。
2.编辑脚本:通过摇杆移动目标
可以给目标加上刚体,获取摇杆的横向值和纵向值来确定移动方向,然后给刚体添加对应方向的力让目标动起来。
也可以通过直接控制目标的位置信息来移动目标。
public float moveSpeed;//移动速度
public VariableJoystick variableJoystick;//摇杆
public Rigidbody rb;//刚体
private void FixedUpdate()
{
//根据摇杆方向设置目标移动的方向
Vector3 direction = Vector3.forward * variableJoystick.Vertical + Vector3.right