需导入插件
摇杆控制代码:MoveController
public class MoveController : MonoBehaviour {
private Animator an;
private void Start()
{
an = GetComponent<Animator>();
}
void OnEnable()
{
EasyJoystick.On_JoystickMove += OnJoystickMove;
EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;
}
void OnDisable()
{
EasyJoystick.On_JoystickMove -= OnJoystickMove;
EasyJoystick.On_JoystickMoveEnd -= OnJoystickMoveEnd;
}
void OnDestroy()
{
EasyJoystick.On_JoystickMove -= OnJoystickMove;
EasyJoystick.On_JoystickMoveEnd -= OnJoystickMoveEnd;
}
void OnJoystickMoveEnd(MovingJoystick move)
{
if (move.joystickName == "MoveJoystick")
{
an.SetFloat("Run", 0);
}
}
void OnJoystickMove(MovingJoystick move)
{
if (move.joystickName != "MoveJoystick")
{
return;
}
float joyPositionX = move.joystickAxis.x;
float joyPositionY = move.joystickAxis.y;
if (joyPositionY != 0 || joyPositionX != 0)
{
//设置角色的朝向(朝向当前坐标+摇杆偏移量)
transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));
//移动玩家的位置(按朝向位置移动)
transform.Translate(Vector3.forward * Time.deltaTime * 5);
//播放奔跑动画
an.SetFloat("Run", 1);
}
}
}
导入摇杆之后需注意:
根据屏幕大小修改值
这里摇杆的名称需和 MoveController代码内的摇杆代码同名
if (move.joystickName == "MoveJoystick")
{
an.SetFloat("Run", 0);
}
导入小地图时需注意
1、添加layer层
2、小地图需绑定角色
3、切换层,把角色的层改为mapsystem,不然小地图的移动不会根据人物移动而移动,而是根据摇杆的移动而移动