easytouch unity 使用
在 Unity 开发中,EasyTouch 是一款非常实用的插件。本文将详细介绍 EasyTouch 的使用方法,帮助开发者在移动平台的 RPG 类游戏中实现虚拟摇杆控制人物角色的行走和其他行为。
一、EasyTouch 简介
在移动平台的 RPG 游戏里,虚拟摇杆是控制人物角色行走和行为的常用工具。之前尝试过 EasyTouch 2.5 版本,发现其在自适应方面表现不佳,而最新的 3.1 版本已经解决了这个问题。虽然 Unity 自带了摇杆 Joystick,使用起来较为简单,但存在不少局限,无法满足普通 MMO 游戏的需求,例如指定显示区域或更改素材等。而 EasyTouch 插件则能轻松实现这些功能。该插件可以在 Asset Store 上购买,也可以使用免费版。
二、效果图
这里可以想象一个使用 EasyTouch 插件实现的虚拟摇杆控制角色移动的酷炫效果,是不是很酷呢?接下来,让我们看看具体的创建过程。
三、操作步骤
(一)官方文档步骤(C#)
- 导入 EasyTouch 资源包:Import EasyTouch Package。
- 创建空游戏对象:Create an empty gameObject, and name it EasyTouch(你也可以选择其他名称)。步骤 1 和 2 可以通过选项菜单替代。
- 添加脚本:Add the EasyTouch.cs script on the EasyTouch gameObject that you just created。
- 设置参数:Select the EasyTouch gameobject, and verify that Broadcast messages is set to FALSE in the inspector。
- 创建新的 C# 脚本:Create a new C# script MyFirstTouch。
- 添加方法:
// Subscribe to events void OnEnable() { EasyTouch.On_TouchStart += On_TouchStart; }
// 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); }
7. **创建空游戏对象 Receiver**:Create an empty gameObject, and name it Receiver。
8. **添加脚本到 Receiver**:Add MyFirstTouch script to the gameObject Receiver。
9. **运行测试**:Run it in editor, and click on the screen。
### (二)步骤翻译
1. 导入“EasyTouch”资源包。
2. 创建空物体,命名为 EasyTouch(当然你也可以改成其他名字)。
3. 将 EasyTouch.cs 脚本添加到刚刚创建的空物体(EasyTouch)上。
4. 选择该物体,不要勾选 BroadcastMessages。
5. 创建一个新的 C# 脚本,命名为 MyFirstTouch。
6. 添加上述方法。
7. 再创建一个空物体,命名为 Receiver。
8. 将 MyFirstTouch 脚本添加到空物体 Receiver 上。
9. 运行并点击摇杆,会发现控制台打印了当前按下的坐标。
### (三)自制人物摇杆控制
1. **导入资源包**:导入 EasyTouch3 资源包。
2. **前期准备**:做好前期准备,包括人物模型、地形的创建。
3. **添加 Joystick 实例**:通过 Hedgehog Team -> Easy Touch -> Extensions -> Add a new Joystick,此时会在左下角创建虚拟摇杆的实例。
4. **设置摇杆参数**:设置摇杆的相关参数。
5. **创建脚本控制角色移动**:创建脚本 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"); } } }
### (四)函数执行顺序
在上述脚本中,`OnEnable` 方法在脚本启用时调用,用于订阅摇杆移动和移动结束的事件;`OnJoystickMove` 方法在摇杆移动时调用,根据摇杆的偏移量控制角色的朝向、移动和播放奔跑动画;`OnJoystickMoveEnd` 方法在摇杆移动结束时调用,使角色恢复到 idle 状态。
### (五)创建点击按钮
点击 HedgehogTeam -> EasyTouch -> Extensions -> Create a new Button,会在屏幕右下角创建一个按钮。若要让右下角的按钮点击后实现我们想要的效果,例如让人物执行跳跃动作,可以在脚本中添加相应的 `jump` 方法。点击按钮后,人物就会执行跳跃动作。