unity easy touch教程
之前已经介绍过Unity自带的摇杆Joystick,它使用起来较为简单,但存在诸多局限性,无法完全满足普通MMO手游的一些需求。例如,难以方便地更换素材,不能指定在某个区域显示,或者无法实现只有在该区域触摸时才出现等功能。而Unity Easy Touch插件则实现了这些功能,并且所有功能均可配置。大家可以从Asset Store上购买该插件,也可以使用免费版。
实例
本次仍使用上次的例子来实现角色移动的控制。
步骤
- 导入资源包:导入“Easy Touch 3”的资源包。
- 创建人物模型:在场景中创建人物模型。
- 创建地形:构建游戏所需的地形。
- 添加摇杆实例:选择“Hedgehog Team -> Easy Touch -> Extensions -> Add a new Joystick”。此时,摇杆会出现在左下角。
- 设置摇杆参数:设置摇杆的相关参数,具体设置可参考下图(此处原文未给出图,实际使用时需补充)。
- 编写控制脚本:新建一个名为
MoveController.cs的脚本,用于接收摇杆的事件,从而控制角色的移动。代码如下:using UnityEngine; using System.Collections;
public class MoveController : MonoBehaviour { void OnEnable() { EasyJoystick.On_JoystickMove += OnJoystickMove; EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd; }
// 移动摇杆结束 void OnJoystickMoveEnd(MovingJoystick move) { // 停止时,角色恢复idle if (move.joystickName == "MoveJoystick") { animation.CrossFade("idle"); } }
// 移动摇杆中 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 5); // 播放奔跑动画 animation.CrossFade("run"); } } }
完成上述步骤后,就实现了通过Easy Touch插件控制角色移动的功能。
## Easy Touch参数
最后,我们来看看Easy Touch的参数(此处原文未详细介绍参数,实际使用时需补充具体参数内容)。
## 总结
Easy Touch提供了虚拟摇杆的解决方案,基本能满足各种需求,包括前面提到的定制UI、隐藏摇杆、指定显示区域等功能。建议大家在项目中尝试使用该插件。
## 源码
(此处原文未给出源码相关链接或其他信息,若有需补充)