对于移动平台上的RPG类的游戏,我们常用虚拟摇杆来控制人物角色的行走和一些行为,相信我们对它并不陌生,之前尝试了EasyTouch2.5,发现并没有最新版的3.1好用,2.5版本的对于自适应没有做的很好,而最新版的已经解决了这一问题。当然unity也自带了摇杆Joystick,用起来也简单,但存在不少局限,不会满足普通mmo游戏的需求,比如指定显示区域或者是更改一些素材等等,而这些EasyTouch插件都已经帮你实现,不得不佩服插件的原作者,能做出这么炫酷好用的插件,当然这估计是老外开发的,关于插件的下载,你可以在AssetStore上购买,当然也可以使用free版。
我这里也提供一个3.1版本的插件下载地址: <http://download.csdn.net/detail/s10141303/6962919
一、效果图
感觉很酷有木有!接下来就看一下创建的过程吧!
二、操作步骤
1.官方文档上的步骤
Quick Start (C#)
1-Import EasyTouch Package.
2-Create an empty gameObject, and name it EasyTouch.(You can choose another
name)
Step 1 & 2 can be replace by the option menu
3-Add the EasyTouch.cs script on the EasyTouch gameObject that you just
created.
4-Select the EasyTouch gameobject, and verifies that Broadcast messages is set
to FALSE in the inspector.
5-Create a new C# script MyFirstTouch
6-Add these methods
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| // 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-Create an empty gameObject, and name it Receiver.
8- Add MyFirstTouch script to the gameObject Receiver.
9- Run it in editor, and click on the screen
2.翻译一下以上的步骤
1.import“EasyTouch”资源包
2.创建空物体,命名为EasyTouch(当然你也可以改成其他名字)
3.添加EasyTouch.cs脚本在刚刚创建的空物体(EasyTouch)上
4.选择改物体但不要将BroadcastMessages勾选
5.创建一个新的C#脚本,命名MyFirstTouch
6.添加这些方法
7.再创建一个空物体,命名为Receiver
8.将MyFirstTouch脚本添加到空物体Receiver上
9.运行并且点击遥感,会发现控制台打印了当前按下的坐标
3.根据官方的这些提示,自己来做一个属于自己的人物遥感控制
1.导入EasyTouch3资源包
2.做好前期准备,包括人物模型、地形的创建
3.添加JoyStick实例:Hedgehog Team-Easy Touch-Extensions-Add a new
Joystick。此时就会在左下角创建了虚拟遥感的实例。
4.设置遥感的相关参数
.创建脚本MoveController.cs用来接收遥感事件控制角色的移动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| 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");
}
}
}
|
几个函数的执行顺序:
6.效果图
7.创建点击按钮
点击HedgehogTeam-EasyTouch-Extensions-Create a new Button,会在屏幕右下角创建一个button
如何让有下角的按钮点击能做出我们想要的效果呢?
jump方法:
然后点击一下按钮,人物就会跳跃动作!
其他教程:
<http://blog.csdn.net/janeky/article/details/17364903
<http://www.newbieol.com/information/564.html