首先创建一个摇杆的实例

我这里修改名称为Move

复制一下 命名为 Rotate

勾选动态显示,这样用户点击后才会显示摇杆(现在摇杆游戏都是动态显示)

设置摇杆的位置(一个在左下,一个在 右下)

点击后如图 在屏幕的左下方点击

角色的移动直接用摇杆来控制玩家的(x ,z) 别忘了设置速度,这样运行下去,玩家就能随着摇杆进行移动

***********************************************************************
![技术分享]()
旋转我们用代码来控制
首选设置摇杆类型

新建一个 空物体 TOUCH 绑定 控制脚本(我这里直接拿写好的粘上来了 ,大家无视其他的变量就行了)

- using UnityEngine;
- using System.Collections;
-
-
- public class MoveController : MonoBehaviour {
-
- private Animator anim;
- private Rigidbody rb;
- private float joyPositionX;
- private float joyPositionY;
- private float joyroX;
- private float joyroY;
- public float Speed = 5f;
- private PlayerHealth ph;
- private EasyTouch ej;
-
- private float timer;
-
-
-
- void Awake()
- {
- anim = GameObject.FindGameObjectWithTag(Tags.player).GetComponent<Animator>();
- rb = anim.transform.rigidbody;
- ph = rb.transform.GetComponent<PlayerHealth>();
-
- }
- void OnEnable()
- {
- EasyJoystick.On_JoystickMove += OnJoystickMove;
- EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;
- ej = gameObject.GetComponent<EasyTouch>();
- }
-
-
-
- void OnJoystickMoveEnd(MovingJoystick move)
- {
- if (move.joystickName == "Move")
- {
- anim.SetBool("Move", false);
- joyPositionX = 0;
- joyPositionY = 0;
- }
- }
- void Update()
- {
- if (ph.hp < 1 && ej.enable)
- {
-
- ej.enable = false;
- }
- }
- void OnJoystickMove(MovingJoystick move)
- {
-
-
- Debug.Log("error");
- if (move.joystickName == "Rotate")
- {
- joyroX = move.joystickAxis.x;
- joyroY = move.joystickAxis.y;
- rb.transform.LookAt(new Vector3(rb.transform.position.x + joyroX, rb.transform.position.y, rb.transform.position.z + joyroY));
- }
- else if (move.joystickName == "Move")
- {
-
- anim.SetBool("Move", true);
- joyPositionX = move.joystickAxis.x;
- joyPositionY = move.joystickAxis.y;
-
- }
- }
- }
好了 这样就能控制 旋转了 ,到此结束,很简单吧!

Unity3d 双摇杆 easyTouch
原文:http://www.cnblogs.com/daluo/p/5815706.html