首页 > 代码库 > Unity3d 双摇杆 easyTouch
Unity3d 双摇杆 easyTouch
首先创建一个摇杆的实例
我这里修改名称为Move
复制一下 命名为 Rotate
勾选动态显示,这样用户点击后才会显示摇杆(现在摇杆游戏都是动态显示)
设置摇杆的位置(一个在左下,一个在 右下)
点击后如图 在屏幕的左下方点击
角色的移动直接用摇杆来控制玩家的(x ,z) 别忘了设置速度,这样运行下去,玩家就能随着摇杆进行移动
***********************************************************************
旋转我们用代码来控制
首选设置摇杆类型
新建一个 空物体 TOUCH 绑定 控制脚本(我这里直接拿写好的粘上来了 ,大家无视其他的变量就行了)
[csharp] view plain copy print?
- 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;
- }
- }
[csharp] view plain copy print?
- //摇杆移动中的回掉
- void OnJoystickMove(MovingJoystick move)
- {
- Debug.Log("error");
[csharp] view plain copy print?
- //下面就是判断摇杆名称来做相应的处理 玩家的坐标加上摇杆的偏移重新设置玩家的方向
- 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;
- /* 设置角色的朝向(朝向当前坐标+摇杆偏移量)
- transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));
- //移动玩家的位置(按朝向位置移动)
- transform.Translate(Vector3.forward * Time.deltaTime * 5);
- 播放奔跑动画
- rb.MovePosition(transform.position + new Vector3(joyPositionX, 0, joyPositionY) * 50 * Time.deltaTime);*/
- }
- }
- }
好了 这样就能控制 旋转了 ,到此结束,很简单吧!
Unity3d 双摇杆 easyTouch
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。