EasyTouch和摇杆控制简介
EasyTouch 4.3版本已经支持UGUI,所以如果unity版本低于4.6,这个版本的Easy Touch将无法使用。目前EasyTouch4.3 pro测试可以配合4.6 ~ 5.3版本使用。
以下是4.3版插件包的目录结构:
你可以看到这个版本中的EasyTouch分为两个模块。
第一个模块EasyTouch是一些基本的响应事件,比如点击屏幕,点击场景中的物体。因为ETT(Easy Touch Trigger)的加入,使用起来非常方便,类似于UGUI的事件系统。
第二个模块EasyTouchControl是在一些插件中提前准备好的控制器集合系统,结合unity自带的UI系统,比如Dpad、摇杆、触摸板、按钮等。每个模块都有相应的描述文件和接口文件。详细问题请参考政府提供的这些文件。
二、EasyTouch摇杆功能介绍
ETC(Easy Touch Controls)控制装置中有两种类型的操纵杆:
静态:操纵杆会出现在你预设的地方。
动态:操纵杆会出现在你触摸屏幕的地方。你也可以强制操纵杆只在一定范围内出现。
每个摇杆控件由两张图片组成,一张作为背景,另一张作为按钮。摇杆控件的大小与背景图像的大小有关(这个大小可以通过宽度和高度参数来设置)。
摇杆控制的每个轴(X和Y轴)返回的参数范围从-1到1。也可以通过参数设置是否打开相应的轴。
如何创建游戏杆
右键单击层次窗口并选择EasyTouch控件下的操纵杆。
ETC会自动创建一个canvas和一个EventSystem游戏对象。
2)操纵杆控制的检查面板
属性组描述:
Activated:是否激活这个摇杆控件,即使这个属性被禁用,摇杆控件也是可见的。
Visible:是否显示操纵杆。
使用固定更新:如果使用物理系统的更新频率,则需要检查该属性。
职位和职位。尺寸:设置摇杆的类型、位置和尺寸。
轴特性:轴特性设置。
精灵:设置摇杆的图片。
移动事件、触摸事件、按下事件和按压事件:在这四个事件面板中,你可以在任何系统中设置定义的时间,类似于UGUI/NGUI的事件调用方法。只需将项目中现有的调用方法直接拖到控件中。操纵杆、DPad和触摸板具有类似的事件响应机制,可以轻松重复使用和更换。
(3)位置和尺寸;大小属性组
类型:设置摇杆类型(静态或动态)。
锚点:锚点设置
拇指不回:手指离开屏幕后,拇指图片会回到原来的位置吗?
背景尺寸:背景图片的尺寸。
Thumbe Size:拇指按钮大小(即拇指拖动的图片大小)。
半径基于:设置确定摇杆控制半径的轴。当您导入的图片不是正方形时,此参数很有用。
关于动态操纵杆的设置:
动态操纵杆需要设置其外观范围,可根据需要选择以下类型。如果选择用户定义,用户需要指定自己的活动范围。
关于静态操纵杆的设置:
锚点:锚点的设置
偏移:距锚点的偏移距离。
如果选择用户定义,用户需要自己指定活动范围。
关于区域的设置:
创建一个区域可用于定义操纵杆控制的动态和静态活动范围。
创建方法如下:
区域控制检查器面板属性描述:
运行时显示:在项目运行状态下是否显示区域控件。
预设:如果需要自己设置具体的范围,可以在RectTransform组件中设置一些预设的区域范围。
(4)轴属性属性组
水平轴和轴。垂直轴:设置水平轴和垂直轴是否可用。轴的对应名称可以在后面的输入框中输入,名称在整个场景中必须是唯一的。
反转轴:翻转轴的正值和负值。
死区长度(Dead length):该值决定了每个轴向距离中心多远是无效区域,即如果每个轴向的移动距离小于最长距离的比值,则该轴向没有返回值。
开/关阈值:打开和关闭阈值(有关向下触发事件,请参考下面的向下事件部分)。
Speed:这个值直接用来控制操纵杆移动时物体的移动速度。该值可以通过ETCInput获得。GetAxisSpeed接口(请参考ETINPUT _ API。PDF文档,了解有关界面的详细信息)。
动作开启:当动作机会是按下/向下时,反馈发生。
Direct Action to:设置要由操纵杆操纵的对象(带有transform组件的游戏对象)。
动作:选择要对对象的动作施加的影响。(移动、旋转、施力...).
受影响的轴:作用轴(X/Y)。
启用惰性:是否激活延迟功能。
正向键:可以设置该键在摇杆对应轴的正向(横轴为右,纵轴为上)具有相同的功能。
负向键:可以设置该键与对应轴负向的摇杆功能相同(横轴为左,纵轴为下)。
(5)精灵属性组
设置与背景和拇指按钮图标对应的图片和基本颜色。
也可以直接在对应游戏对象的image组件中设置(背景和拇指图片是场景中的两个游戏对象)。
(6)事件属性组
如何添加事件?
找到相应的触发方法,然后单击加号。
写好要触发的具体方法内容后,将脚本挂在游戏对象下,然后将游戏对象拖动到对应的触发方法下,在函数处选择刚写好的对应类下的方法。
移动事件
On Move Start():当摇杆第一次移动时触发(当它返回到0点钟位置时,触发定时将被重置)。
On Move(Vector2):当摇杆移动或摇杆的拇指键不回原点时会连续触发,摇杆在各轴上移动的距离(取值范围为-1~1)会作为方法参数传入。
On Move Speed(Vector2):当摇杆移动或摇杆的拇指键不回原点时会连续触发,摇杆各轴的axis value * axis sensitivity * time . delta time作为方法参数传入。
On Move End():当摇杆的拇指键回到原点或者用户释放摇杆时触发。
触摸事件
On Touch Start():第一次触摸操纵杆时触发。
On Touch Up():当用户释放操纵杆(停止触摸)时触发。
下行事件
On Down Up():当用户第一次按下摇杆并向上移动时触发(当摇杆的拇指键回到原点或摇杆位置在对应轴的阈值范围内时,该功能的触发条件复位)。
On Down Right():当用户第一次按下摇杆并向右移动时触发(当摇杆的拇指键回到原点或摇杆位置在对应轴的阈值范围内时,该功能的触发条件复位)。
On Down Down():当用户第一次按下摇杆并向下移动时触发(当摇杆的拇指键回到原点或摇杆位置在对应轴的阈值范围内时,该功能的触发条件复位)。
On Down Left():当用户第一次按下摇杆并向左移动时触发(当摇杆的拇指键回到原点或摇杆位置在对应轴的阈值范围内时,该功能的触发条件复位)。
新闻事件
On Press Up():当摇杆被按下并向上移动时触发。
On Press Right():当摇杆被按下并向右移动时触发。
On Press Down():当摇杆被按下并向下移动时触发。
On Press Left():当摇杆被按下并向左移动时触发。
3.一个2D摇杆控制运动的小例子
(1)导入相关资源
导入需要的资源,设置相关参数,拖动到场景中。
(2)创建一个操纵杆
右键单击层次面板= & gt轻松触摸控件= >操纵杆?还是?点击菜单栏中的游戏对象菜单= & gt轻松触摸控件= >操纵杆
调整操纵杆的位置,设置操纵杆想要控制的对象和控制方式。具体设置参数如下:
(3)创建一个控制脚本
[csharp]查看纯文本
打印?
usingUnityEngine
使用系统。收藏;
publicclassPlayerMonitor?:?单一行为
{
publicvidjoystickcontrolmove(vector 2?方向)
{
这个. transform.rotation?=?四元数。look rotation(new vector 3(direction . x,?direction.y,?0));
}
}
(4)增加相应的操纵杆控制方式。
(5)最终效果
移动操纵杆拇指按钮模型将进行同步运动,并在运动过程中改变模型的方向。