多语言展示
当前在线:1571今日阅读:91今日分享:37

unity5 easytouch摇杆,easytouch控制人物

对于unity菜鸟来说自己写个摇杆不容易,最后发现easytouch很不错就直接用了,研究后把最简单的配置方式跟大家分享。
方法/步骤
1

新建一个unity3d项目“EasyTouch_test”。

2

通过“Assets”--“Import Package”--“Custom  Package”导入easytouch.unitypackage,我这里用的3.1的版本,弹出的窗口直接“Import”,出现兼容问题直接“I Make a Backup. Go Ahead”。

3

在场景中新建一个“Cube”,加上“Rigidbody”。

4

通过菜单中的”Tools“--”Hedgehog Team“--”EasyTouch“--”Extensions“--”Adding a new joystick“。

5

选择创建的”xxxxJoystick“,把其中的 ”Joystick name“ 重新命名为 ”MoveJoystick“,把下面的”Interaction type“设置为”Direct And Event“。

6

新建一个”Script“文件夹并新建一个”Easymove“的C#脚本,在其中添加如下的代码:using UnityEngine;using System.Collections;public class Easymove : MonoBehaviour { // Subscribe to events   void OnEnable(){   EasyTouch.On_TouchStart += On_TouchStart;   EasyJoystick.On_JoystickMove += OnJoystickMove;   EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;   }   // Unsubscribe   void OnDisable(){   EasyTouch.On_TouchStart -= On_TouchStart;   }   // Unsubscribe   void OnDestroy(){   EasyTouch.On_TouchStart -= On_TouchStart;   }   // Touch start event   public void On_TouchStart(Gesture gesture){   Debug.Log( 'Touch in ' + gesture.position);   } //摇杆结束   void OnJoystickMoveEnd(MovingJoystick move)   {    if (move.joystickName == 'MoveJoystick')   {   }   }   //移动摇杆中   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 * 10);   }   }  }

7

编辑完成后把”Easymove“脚本拖拽添加到”Cube“中,然后运行就完成了,很简单吧。

注意事项

注意joystick中选项设置,”Interaction type“设置为”Direct And Event“,还有摇杆的名称要与代码中操作的一致。

推荐信息