您的位置首页百科问答

unity5 easytouch摇杆,easytouch控制人物

unity5 easytouch摇杆,easytouch控制人物

的有关信息介绍如下:

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“中,然后运行就完成了,很简单吧。