Unity3d 双摇杆 easyTouch
Posted 大.罗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d 双摇杆 easyTouch相关的知识,希望对你有一定的参考价值。
首先创建一个摇杆的实例
我这里修改名称为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;
- /* 设置角色的朝向(朝向当前坐标+摇杆偏移量)
- 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的主要内容,如果未能解决你的问题,请参考以下文章
求助 在网上找的关于unity3D插件EasyTouch和EasyJoystick 接收摇杆的事件.
unity easytouch怎么用?unity easytouch摇杆怎么做?