Unity插件EasyTouch摇杆控制2D(3D)物体移动

最近初学Easytouch,感觉很好用,网上资料也很多,至于摇杆控制移动问题,网上有很多,我在这里有也是记录一下,好记性不如烂笔头嘛

至于EasyTouch其它的问题我就多不说了,网上很多,直接上代码吧:
EasyTouch摇杆控制3D物体移动:
挂在3D物体上。

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour
{
    public EasyJoystick joystick;//虚拟摇杆
    private float speed = 2.0f;

    void OnEnable()
    {
        //注册事件
        EasyJoystick.On_JoystickMoveStart += JoystickMoveStart;
        EasyJoystick.On_JoystickMove += JoystickHandlerMoving;
        EasyJoystick.On_JoystickMoveEnd += JoysticHanderMoveEnd;
    }

    void OnDisable()
    {
        //撤销事件
        EasyJoystick.On_JoystickMoveStart -= JoystickMoveStart;
        EasyJoystick.On_JoystickMove -= JoystickHandlerMoving;
        EasyJoystick.On_JoystickMoveEnd -= JoysticHanderMoveEnd;
    }

    void JoystickMoveStart(MovingJoystick move)
    {
        Debug.Log("主角开始移动");
    }

    void JoystickHandlerMoving(MovingJoystick move)
    {
        Debug.Log("主角移动中");

        if (move.joystick.name != "Joystick")
        {
            return;
        }

        //获取虚拟摇杆偏移量
        float Axis_x = move.joystickAxis.x;
        float Axis_y = move.joystickAxis.y;

        Vector3 position = this.transform.position;
        //设置角色的面向位置
        this.transform.LookAt(new Vector3(position.x - Axis_x, position.y, position.z - Axis_y));

        //主角移动
        this.transform.Translate(Vector3.forward * Time.deltaTime * speed);
    }

    void JoysticHanderMoveEnd(MovingJoystick move)
    {
        Debug.Log("主角移动结束");
    }
}

然后呢,是摇杆控制2D移动:
代码差别不大,也是挂在物体身上。

using UnityEngine;
using System.Collections;

public class PlayByJoyStick : MonoBehaviour
{
    public EasyJoystick joystick;//虚拟摇杆
    private float Axis_x, Axis_y;
    private RectTransform rectImage;
    void Start()
    {
        rectImage = GetComponent<RectTransform>();
    }

    void OnEnable()
    {
        //注册事件
        EasyJoystick.On_JoystickMoveStart += JoystickMoveStart;
        EasyJoystick.On_JoystickMove += JoystickHandlerMoving;
        EasyJoystick.On_JoystickMoveEnd += JoysticHanderMoveEnd;
    }

    void Update()
    {
        //Debug.Log("X" + Axis_x);
        //Debug.Log("Y" + Axis_y);
    }

    void OnDisable()
    {
        //撤销事件
        EasyJoystick.On_JoystickMoveStart -= JoystickMoveStart;
        EasyJoystick.On_JoystickMove -= JoystickHandlerMoving;
        EasyJoystick.On_JoystickMoveEnd -= JoysticHanderMoveEnd;
    }

    void JoystickMoveStart(MovingJoystick move)
    {
        Debug.Log("主角开始移动");
    }

    void JoystickHandlerMoving(MovingJoystick move)
    {
        Debug.Log("主角移动中");
        if (move.joystick.name != "New joystick")
        {
            return;
        }
        //获取虚拟摇杆偏移量
        Axis_x = move.joystickAxis.x;
        Axis_y = move.joystickAxis.y;
        //主角移动
        rectImage.anchoredPosition +=new Vector2 (Axis_x, Axis_y);
    }

    void JoysticHanderMoveEnd(MovingJoystick move)
    {
        Debug.Log("主角移动结束");
    }

}

Ok,暂时就这样吧。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值