unity手游摇杆的实现(EasyTouch)

EasyTouch中提供了JoyStick(虚拟摇杆)的工具,该文主要讲述了unity中双摇杆的实现(左侧摇杆控制移动方向,右侧摇杆控制视角转向).(Unity版本5.3.4f1)
首先下载EasyToch插件 ,然后打开Project
如图,将插件导入至Project中,此时 hierarchy面板中添加了Singleton of VirtualScreen,EasyTouch, Newjoystick三个Object,此时Singleton of VirtualScreen,EasyTouch不做改变,我们重点需要改变的是NewJoystick。
点击NewJoystick,在Inspector中,首先为joystick取个名字(JoyStick properties中Joystickname),改完之后在hierarchy中的Newjoystick也变成了你改的名字,在这我改成了move
接着就到重要的环节了——利用这个摇杆控制物体移动。
在遥感中控制物体移动有两种方法:在 摇杆的Inspector面板中,有个属性是Joustick axes properties&events,在这个属性里面,第一个参数就是interaction type,翻译过来是作用类型,默认为direct,直接作用,在勾选Enable X axis,Enable Y axis,此时只要把你要操纵的物体拖入下面的Joystick X/Y to就可以直接对物体进行操纵了,那么是怎样操纵的呢,在Influenced中可以进行选择,它有4个类型:Rotate(旋转),Rotate Local(局部旋转),Translate(平移),Translate Local(局部平移),如果勾选旋转或局部旋转,此时操纵摇杆时会使物体旋转,如果勾选平移或局部平移,此时操纵摇杆时会使物体移动,当然前提是你别忘记在speed设置速度,如果速度为0那么怎么操纵摇杆物体都不会有变化。如图, 此时我已经可以操纵人物移动了。 但是这个操纵方式的弊端很快显现出来,那就是当物体的视角改变时,摇杆控制的方向并不会改变,这就对操纵造成了很大的麻烦,移动的方向总是固定的,对游戏造成了极差的体验,那么怎么解决这个问题?
很简单,将 interaction type改为event Natification(事件通知),此时操纵摇杆并不是直接对物体进行修改了,而是相应摇杆提供的事件方法 EasyJoystick.On_JoystickMove EasyJoystick.On_JoystickMoveEnd,此时只需要在被控制的物体中添加一个脚本就行了
代码如下:
//OnEable函数,对象可用时回调
    void OnEnable()
    {
        //设置 EasyJoystick.On_JoystickMove与EasyJoystick.On_JoystickMoveEnd
        EasyJoystick.On_JoystickMove += OnJoystickMove;
        EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;
    }

    //销毁当前物体时同时销毁当前摇杆对物体的绑定
    void OnDisable()
    {
        EasyJoystick.On_JoystickMove -= OnJoystickMove;
        EasyJoystick.On_JoystickMoveEnd -= OnJoystickMoveEnd;
    }

    //移动摇杆结束 
    void OnJoystickMoveEnd(MovingJoystick move)
    {
        //停止时
        if (move.joystickName.Equals("move"))
        {
        }
    }

    //移动摇杆中
    void OnJoystickMove(MovingJoystick move)
    {
        if (move.joystickName .Equals("move"))
        {
            return;
        }
        //获取摇杆中心偏移的坐标 
        float joyPositionX = move.joystickAxis.x;
        float joyPositionY = move.joystickAxis.y;
        //设置角色朝摇杆方向移动
        if (joyPositionX != 0 || joyPositionY != 0)
        {
            this.transform.Translate((new Vector3(joyPositionX,0, joyPositionY))* Time.deltaTime * speed);
        }
    }


此时摇杆就可以控制物体朝摇杆移动方向移动了。
接下来控制物体视野:
再导入一个new joystic,更名为view,首先为物体设置第一人称视角(将camera绑定到物体身上),然后设置
作用类型为Direct,如图
此时直接摇杆控制物体旋转就好了,由于camera与物体是绑定在一起的,所以旋转物体时camera也会跟着旋转,达到一种视野变化效果。
然后就OK了,这样很好的实现了双摇杆实现控制物体视角与运动

你可能感兴趣的:(unity手游开发)