Unity5.5+easytouch5双摇杆控制角色移动及挂上Animator的方法
2017-04-26 21:00
741 查看
Unity版本5.5.1f
Easytouch版本5.0.12
参考文献:http://blog.csdn.net/gary_888/article/details/51407635
http://blog.csdn.net/qq_15267341/article/details/51581730
此文章为CSDN博客WaterCapSule写,若转载需经过同意
前言:新下了个easytouch5的版本想找个教程结果全是easytouch3.1以下的,囧,毕竟easytouch3.1是基于OnGUI的,令人不爽。在捣鼓了两天后终于大概明白新版本如何使用,特意分享。
注意:本事例用的是官网的Nightmare(没打错吧?),“恶梦”作为基础。
第一步:新建两个Joystick,分别改名LeftJoyStick和RightJoyStick
在LeftJoyStick的ETC Joystick-Axes properties中的Horizontal axis-General setting中将要控制的人物Player拖入框中,action选translate,Affected action选 X
![](https://img-blog.csdn.net/20170426213556725?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgyMDAyOTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
同理下面对Vertical axis作同样设置,只是Affected Axis改成Y
到现在为止,就可以通过左摇杆控制人物移动了,人物移动太快怎么办,Speed调慢点即可。
下面开始设置人物移动时要调用move动画,用bool控制,这个事先做好这里不再阐述,那么如何调用呢?
打开Player角色下的Player脚本(原先键盘控制的脚本),添加两个公开函数(函数名可以改成你喜欢的)
分别将Player角色物体拖入target框选择Gameobject.BroadcastMessage,下面分别填入
与
![](https://img-blog.csdn.net/20170426215056821?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgyMDAyOTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第二步,开始对右摇杆设置,首先在Player脚本添加下面一段
![](https://img-blog.csdn.net/20170426215648235?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzgyMDAyOTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
简单来说就是easytouch通过OnMoveSpeed传出一个Vector2,所以我们要在Player脚本创一个函数(变量是Vector2)用于接受传出的Vector2,并且利用这个与人物的位置构成一个矢量,再用LookAt就能控制人物朝向了。
调试没问题后,但是发现死亡后还能移动和旋转,怎么办?
第三步,原本在人物Player下有一个HealthManager的脚本,里面有个Dead()的函数,一旦hp<=0后就会禁用有关脚本的调用,这时我们只要在函数中其中加两句
Easytouch版本5.0.12
参考文献:http://blog.csdn.net/gary_888/article/details/51407635
http://blog.csdn.net/qq_15267341/article/details/51581730
此文章为CSDN博客WaterCapSule写,若转载需经过同意
前言:新下了个easytouch5的版本想找个教程结果全是easytouch3.1以下的,囧,毕竟easytouch3.1是基于OnGUI的,令人不爽。在捣鼓了两天后终于大概明白新版本如何使用,特意分享。
注意:本事例用的是官网的Nightmare(没打错吧?),“恶梦”作为基础。
第一步:新建两个Joystick,分别改名LeftJoyStick和RightJoyStick
在LeftJoyStick的ETC Joystick-Axes properties中的Horizontal axis-General setting中将要控制的人物Player拖入框中,action选translate,Affected action选 X
同理下面对Vertical axis作同样设置,只是Affected Axis改成Y
到现在为止,就可以通过左摇杆控制人物移动了,人物移动太快怎么办,Speed调慢点即可。
下面开始设置人物移动时要调用move动画,用bool控制,这个事先做好这里不再阐述,那么如何调用呢?
打开Player角色下的Player脚本(原先键盘控制的脚本),添加两个公开函数(函数名可以改成你喜欢的)
public void RunAnimatorOpen() { m_Animator.SetBool("move", true); } public void RunAnimatorStop() { m_Animator.SetBool("move", false); }然后在leftjoystick的etc的MoveEvents框中的OnMoveStart()和OnMoveEnd()
分别将Player角色物体拖入target框选择Gameobject.BroadcastMessage,下面分别填入
RunAnimatorOpen
与
RunAnimatorStop这时候摇杆移动就会调用RunAnimatoropen函数,不移动就调用RunAnimatorStop函数,从而达到控制动画的效果。
第二步,开始对右摇杆设置,首先在Player脚本添加下面一段
public void MoveInRightJoyStick(Vector2 weizhi) { if (weizhi.y != 0 || weizhi.x != 0) { //设置角色的朝向(朝向当前坐标+摇杆偏移量) transform.LookAt(new Vector3(transform.position.x + weizhi.x, transform.position.y, transform.position.z + weizhi.y)); } }然后如图,在MoveEvents中的OnMove(Vector 2)中添加Player物体,然后选中对应的函数
简单来说就是easytouch通过OnMoveSpeed传出一个Vector2,所以我们要在Player脚本创一个函数(变量是Vector2)用于接受传出的Vector2,并且利用这个与人物的位置构成一个矢量,再用LookAt就能控制人物朝向了。
调试没问题后,但是发现死亡后还能移动和旋转,怎么办?
第三步,原本在人物Player下有一个HealthManager的脚本,里面有个Dead()的函数,一旦hp<=0后就会禁用有关脚本的调用,这时我们只要在函数中其中加两句
ETCInput.SetControlActivated("LeftJoystick", false); ETCInput.SetControlActivated("RightJoystick", false);即可实现死亡后双摇杆的禁用,到此时就大功告成!!
相关文章推荐
- Unity使用easytouch虚拟摇杆控制角色移动
- Unity使用EasyTouch虚拟摇杆控制角色
- 【初识 EasyTouch】 (一)创建摇杆控制角色移动
- Unity ——UGUI 通过摇杆控制角色移动
- liggdx 实现摇杆控制角色移动
- unity中简单的角色移动控制
- unity学习手记之控制角色移动
- Unity3d 控制角色移动 键盘按键与虚拟摇杆
- [Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动
- unity 通过键盘控制角色的移动和旋转
- 我的Unity(10)一点一滴 利用UI制作摇杆控制物体移动
- unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
- unity中的jsp函数 控制角色移动transform.Translate
- unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
- Unity2017+Easytouch5双摇杆控制角色&&视角&&animation动画[新手向]
- Unity3D学习之 ------------------------ "Hello Unity"控制角色移动
- unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
- Android使用libgdx实现模拟方向键控制角色移动的方法
- [Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动
- Unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色