300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Unity+Easytouch5双摇杆控制角色视角animation动画[新手向]

Unity+Easytouch5双摇杆控制角色视角animation动画[新手向]

时间:2022-03-11 07:00:40

相关推荐

Unity+Easytouch5双摇杆控制角色视角animation动画[新手向]

一、Easytouch5版本(前言)

近期,用到了Easytouch5的joystick,但是网上教程代码大多不对,自己摸索了一天,感觉也差不多,能基本使用了,这里与大家分享下。

相较于前面的版本,Easytouch5基本变动不大,主要是一些函数名发生了改变&功能进行了合并,这对于新手可能有一些理解的麻烦,所以我总结了下自己遇到的问题。

二、软件使用

1.Unity .1.0f3 (64-bit)

2.Easy Touch 5 Touchscreen Virtual Control

//这两款软件网上都有下载

Easytouch5安装:

把这个直接拖拽进Unity里面的Assets里面

出来的是你要加载的easytouch脚本和素材,自己需要什么就加什么(一般都是全选)然后点击import

easytouch5就安装好了

三、1.一个摇杆的人物移动&转向

1.创建对象【Hierarchy】-->右键-->【3D Object】-->cube。

2.添加Joystick【Hierarchy】-->右键-->【EasyTouch Controls】-->【Joystick】

添加后可以发现Hierarchy出现了一个操作的屏幕框EasyTouchControlsCanvas,它用来控制添加的Joystick的显示(相当于div),他下属就是我们用到的名为new Joystick的摇杆,我们将名字改为moveJoystick

3.属性 在右边ETC Joystick script 可以看到具体一些属性选择,根据需要稍微改一下

Activated:是否激活这个摇杆控件,即使这个属性是disable状态摇杆控件也可见。Visible:是否显示摇杆。Use Fiexed Update:如果使用物理系统的更新频率的话需要勾选这个属性。Position&Size:设置摇杆类型和位置、大小。

Axes properties:轴属性设置。

Sprites:设置摇杆的图片。

Move Events、Touch Events、Down Events、Press Events:在这四个事件面板中,你可以设置任何系统中已定义的时间,使用方式和UGUI/NGUI的事件调用方式类似,将项目中已经存在的调用方法直接拖到控件上即可。joystick,DPad,TouchPad这几种控件的事件响应机制类似,可以很容易的实现重用和替换。 3.设置人物移动和转向 在Axes properties下打开turn&move direction Action,在direct action to中选择这个空间要控制的对象,move speed用来控制速度,当然你只是想控制移动也可以通过下面的Horizontal axis和Vertical axis分别控制两轴,这里不再赘诉。

这里设置完人物应该可以动了,只是没有动画。接下来添加动画

三、2.人物动画animation

新建一个名为Move的C#文件写入下面代码然后加到控制对象,注意你必须要有move这个animation

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Move : MonoBehaviour {Animation m_anim;// Use this for initializationvoid Start () {m_anim = GetComponent<Animation>();}// Update is called once per framevoid Update () {if (ETCInput.GetAxis("Horizontal") != 0 || ETCInput.GetAxis("Vertical") != 0){m_anim.Play("move");}}}

现在人物已经可以有动画的动了

四、双摇杆 人物移动&视角变换

接着前面

再添加Joystick 【Hierarchy】-->右键-->【EasyTouch Controls】-->【Joystick】

配置

第二个摇杆不需要设置axes properties了

当然你可能已经发现了加入第二个摇杆后左边的摇杆只能控制移动了,而右边的摇杆开始控制动画,这是因为摇杆的判定问题,前面所用到的ETCInput只是检测摇杆的输入,而并不知道你实际要操作的是哪个,所以我们需要将Cube下刚刚加入的Move script稍加更改,同时加上视角转换代码

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Move : MonoBehaviour {Animation m_anim;public ETCJoystick moveJoystick;public ETCJoystick lookJoystick;public float sensitivityX = 10F;public float sensitivityY = 10F;public float minimumY = -60F;public float maximumY = 60F;float rotationY = 0F;// Use this for initializationvoid Start () {m_anim = GetComponent<Animation>();moveJoystick = ETCInput.GetControlJoystick("moveJoystick");lookJoystick = ETCInput.GetControlJoystick("lookJoystick");}// Update is called once per framevoid Update () {if (moveJoystick.axisX.axisValue!= 0 || moveJoystick.axisY.axisValue!= 0){m_anim.Play("move");}if (lookJoystick.axisX.axisValue!=0||lookJoystick.axisY.axisValue!=0){float rotationX = transform.localEulerAngles.y + lookJoystick.axisX.axisValue * sensitivityX; rotationY += lookJoystick.axisY.axisValue * sensitivityY;rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);}}}

双摇杆控制人物移动&animation和人物视角就做完啦~~~~

PS:第一次写博客,有不足的地方欢迎指出,因为是新手向所以写的比较啰嗦,希望大牛不要。。。写的过程中有些部分借鉴了

点击打开链接

/gy4564349/article/details/42303355

点击打开链接

/xueyedie1234/article/details/51303494

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。