unity 请教一个unity easytouch 下载的问题,如何实现摇杆和之外的触模区域独立。插件

502 Bad Gateway
502 Bad Gateway[Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动 - 推酷
[Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动
& & & &大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是
。今天呢,我们来一起学习在Unity3D中使用EasyTouch虚拟摇杆来控制人物移动。尽管Unity3D内置了一个Joystick组件(其实就是一个GUITexture和一个Js脚本文件啦),可是博主在实际使用的时候发现这个内置的Joystick存在无法适应屏幕大小的问题,所以博主在这里向大家推荐使用EasyTouch这个插件,通过这个插件,我们可以快速地在应用中集成虚拟摇杆功能,而且可以通过改变贴图的方式来自定义摇杆的外观,所以总体来说,这个插件是在触摸交互这部分功能中最好的一个插件。首先我们导入EasyTouch的资源包,然后通过Hedgehog Team-&Extension-&Adding&a new joystick添加一个虚拟摇杆,此时会在层级视图中生成EasyTouch 和 Easy Joystick两个对象。如图:
& & & & 此时,我们可以在游戏场景中看到EasyTouch默认的虚拟摇杆外观:
& & & &接下来,我们来讲解下EasyJoystick的属性:
& & & &好了,如果大家对于这些属性没有什么问题的话,接下来我们就可以开始编写脚本了:
using UnityE
using System.C
public class MoveController : MonoBehaviour {
//当摇杆可用时注册事件
void OnEnable()
EasyJoystick.On_JoystickMove += OnJoystickM
EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveE
//当摇杆不可用时移除事件
void OnDisable()
EasyJoystick.On_JoystickMove -= OnJoystickM
EasyJoystick.On_JoystickMoveEnd -= OnJoystickMoveE
//当摇杆销毁时移除事件
void OnDestroy()
EasyJoystick.On_JoystickMove -= OnJoystickM
EasyJoystick.On_JoystickMoveEnd -= OnJoystickMoveE
//当摇杆处于停止状态时,角色进入待机状态
void OnJoystickMoveEnd(MovingJoystick move)
if (move.joystickName == &EasyJoystick&)
animation.CrossFade(&idle&);
//当摇杆处于移动状态时,角色开始奔跑
void OnJoystickMove(MovingJoystick move)
if (move.joystickName != &EasyJoystick&)
//获取摇杆偏移量
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 * 7.5F);
//播放奔跑动画
animation.CrossFade(&Run&);
& & & &我们将这个脚本绑定到我们的人物模型上面,然后运行程序:
& & & &这里我们再来说一下使用Unity3D自带的Joystick来实现人物移动控制,我们首先需要导入
Standard Assets(Mobile)资源包,在这个资源包里我们可以发现两个有用的文件:Joystick.js和JoystickThumb.psd,它们分别是虚拟摇杆的脚本组件和外观贴图,我们手动创建一个GUITexture,并调整到合适的位置(悲剧就是从这里开始的),将这张贴图赋给GUITexture,然后绑定Joystick.js脚本。博主习惯使用C#,对于Js脚本使用得不多,据说在Unity中Js脚本需要放到Standard Assets、 Pro Standard Assets和Plugins中的任何一个文件件里才能正常使用,所以很多朋友反映的使用Unity内置的Joystick找不到类,就是这个原因。这里博主使用的是国外朋友根据官方的脚本改写的C#脚本。我们编写一个C#脚本来响应虚拟摇杆:
using UnityE
using System.C
public class JoystickController : MonoBehaviour {
private Joystick mJ
private float mSpeed=7.5F;
void Start ()
//获取Joystick
mJoystick=GameObject.Find(&UnityJoystick&).GetComponent&Joystick&();
void Update ()
//获取摇杆响应值
float mX=mJoystick.position.x;
float mY=mJoystick.position.y;
//移动角色
if(mX!=0||mY!=0)
Vector3 mPos=new Vector3(transform.position.x+mX,transform.position.y,
transform.position.z+mY);
transform.LookAt(mPos);
//移动玩家的位置(按朝向位置移动)
transform.Translate(Vector3.forward * Time.deltaTime * 5F);
//播放奔跑动画
animation.Play(&Run&);
animation.Play(&idle&);
& & & &官方提供的这个虚拟摇杆组件无法在电脑上测试,需要安装到手机上运行,我们来看看实际的效果吧:
& & 在手机上EasyTouch插件可以完美运行,官方提供的Joystick没有反映,目前不知道是为什么,有时间的话继续研究下啊。
参考文章:
每日箴言:
决心走一条路的时候,就不要左顾右盼,风景再美也别流连
& &喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei
& &转载请注明出处,本文作者:秦元培,本文出处:http://blog.csdn.net/qinyuanpei/article/details/
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致更多数码资讯,请关注南窗数码
“摇杆人物”相关经验Unity3D(8)
开发步骤:
1.导入Charactor Controller资源包;
2.导入Easy Touch 3.1.0的资源包;
3.创建一个人物模型;
4.新建一个Plane作为地板。
5.新建一个joystick,添加步骤如下图所示:
6.设置摇杆的相关属性:
注:如图中属性一定要设置好,不然的话会出现摇杆没有反应的情况!!!
7.为主角(即需要Easytouch摇杆控制移动的模型)新建一个脚本MoveController用来接收摇杆的事件,控制主角的移动。
代码如下:
using UnityE
using System.C
public class MoveController : MonoBehaviour
void OnEnable()
EasyJoystick.On_JoystickMove += OnJoystickM
EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveE
//移动摇杆结束
void OnJoystickMoveEnd(MovingJoystick move)
//停止时,角色恢复idle
if (move.joystickName == &MoveJoystick&)
animation.CrossFade(&idle&);
//移动摇杆中
void OnJoystickMove(MovingJoystick move)
if (move.joystickName != &MoveJoystick&)
//获取摇杆中心偏移的坐标
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&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3300次
排名:千里之外
原创:27篇求教Unity3d的EasyTouch插件的多点触控
[问题点数:30分,结帖人lin]
求教Unity3d的EasyTouch插件的多点触控
[问题点数:30分,结帖人lin]
只显示楼主
取消只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 easytouch 5 unity 的文章

 

随机推荐