unity5 easytouch摇杆,easytouch控制人物
的有关信息介绍如下:
对于unity菜鸟来说自己写个摇杆不容易,最后发现easytouch很不错就直接用了,研究后把最简单的配置方式跟大家分享。
新建一个unity3d项目“EasyTouch_test”。
通过“Assets”--“Import Package”--“Custom Package”导入easytouch.unitypackage,我这里用的3.1的版本,弹出的窗口直接“Import”,出现兼容问题直接“I Make a Backup. Go Ahead”。
在场景中新建一个“Cube”,加上“Rigidbody”。
通过菜单中的”Tools“--”Hedgehog Team“--”EasyTouch“--”Extensions“--”Adding a new joystick“。
选择创建的”xxxxJoystick“,
把其中的 ”Joystick name“ 重新命名为 ”MoveJoystick“,
把下面的”Interaction type“设置为”Direct And Event“。
新建一个”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);
}
}
}
编辑完成后把”Easymove“脚本拖拽添加到”Cube“中,然后运行就完成了,很简单吧。


