Unity摇杆和小地图的制作

需导入插件

 摇杆控制代码: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,不然小地图的移动不会根据人物移动而移动,而是根据摇杆的移动而移动

猜你喜欢

转载自blog.csdn.net/m0_71624363/article/details/129541987
今日推荐