(五)摇杆/按钮/触摸板

Each Touch前面的几个功能用unity自身的UI事件比较容易实现,可是其最强的地方在于封装了移动端第一人称游戏的操做,如下是几个关键功能:react

(一)Joystick测试

右键->选择Easytouch controls->选择Joystick便可添加以下图所示。spa

 

1)joystick name3d

此名字与游戏名字相同,可是游戏物体名字没法从新命名,只能在此处修更名字,joystick name后边的几个参数相对来讲没用歧义。code

2)position&sizeorm

此部分是用来设定位置和大小,type若是选为dynamic则一开始按钮是隐藏的,会动态在点击位置出现。第二个参数锚点若是不选择用户自定义,则不能在recttransform中设定,只能在joystick中设定。blog

3)axes properties游戏

此部分是设定重点,Turn & move direction action若是选中则表示能够旋转,做用游戏物体为Direct action to参数所指定的游戏物体,也能够点击auto link on tag,经过指定layer来肯定做用的游戏物体。Turn & move direction action会影响下边Horizontal axis以及vertical axis子参数。取消勾选,然受设定Horizontal axis以及vertical axis子参数(重点)。事件

Horizontal axis(vertical axis):这些参数用来设定相关操做对游戏物的影响,后续的事件(参数moveevent等)绑定功能可实现相似功能(即在绑定的事件中手动编写控制代码)。此处至关于经过参数定义能够快速实现功能。其后边名称能够修改,并经过此名字来获取水平方向的参数(与 Input.GetAxis("Horizontal")功能相似);ETCInput.GetAxisDownRight("Horizontal")则表示获取名称为Horizontal的Horizontal axis值(因为能够有不一样的joystick,因此会有不一样的Horizontal axis,经过名称来区分是哪一个)get

                General setting:主要是react on参数和speed参数,前者为用来肯定按下触发(触发一次)仍是按下后一直触发(持续触发),后者肯定运动的速度。

                Direction action:表示相关运动控制,Direct action to参数所指定的游戏物体,也能够点击auto link on tag,经过指定layer来肯定做用的游戏物体。action则表示运动形式(旋转仍是已移动仍是跳跃。。),affected axis则表示运动轴,而有的是没有此选项的,好比action参数值为jump。

                Gravity-inertia-smoothing:进行相关惯性设定,即松开按键后是否当即中止运动仍是会惯性一段时间。

                Unity axis:与unity对应的input类中的轴是否对应(如vertical,horizontal等),axes properties的第一选项Enable unity axis若是不勾选,则此选项则没有做用。

4)camera

Enable tracking:是否开启追踪,便是否有运动物体视角(摄像机是否追踪游戏物体)。因此须要设定追踪的摄像机和相应的游戏物体

5)sprites

按键的贴图

6)MoveEvent~PressEvent

相关事件,跟button操做方法同样,因为事件众多也能够采用ETCInput类来实现,代码见文末。

 

(二)D-pad、TouchPad

右键->选择Easytouch controls->选择D-pad便可添加,其参数与Joystick基本相似,不作赘述。

TouchPad与Joystick功能也类似,不过是以触摸板的形式表现。

(三) Button

右键->选择Easytouch controls->选择Button便可添加。其功能少于上述三类,其至关于unity Button功能的扩展,并可以经过Direction action参数(四种按键均有此参数,功能同样)快速定义点击时与运动相关的运动形式。并经过ETCInput.GetButtonValue( "Button"),获取当前值(测试均为1,不知道有什么特殊意思)

 

 

Button代码事件 if (ETCInput.GetButton("Button")){ getButtonText.text="YES"; getButtonTimeText.text = ETCInput.GetButtonValue( "Button").ToString(); } else{ getButtonText.text=""; getButtonTimeText.text = ""; } if (ETCInput.GetButtonDown("Button")) { getButtonDownText.text = "YES"; StartCoroutine( ClearText(getButtonDownText)); } if (ETCInput.GetButtonUp("Button")){ getButtonUpText.text = "YES"; StartCoroutine( ClearText(getButtonUpText)); }

 

 

代码控制事件 ETCInput.GetAxis("Horizontal");//获取水平轴返回值(与unity的Input.GetAxis相同);
        ETCInput.GetAxisSpeed("Horizontal");//获取水平轴方向的移动速度;
        ETCInput.GetAxis("Vertical"); ETCInput.GetAxisSpeed("Vertical"); //按下与松开(只执行一次)
        if (ETCInput.GetAxisDownRight("Horizontal")){ downRightText.text = "YES"; StartCoroutine( ClearText(downRightText)); } if (ETCInput.GetAxisDownDown("Vertical")){ downDownText.text = "YES"; StartCoroutine( ClearText(downDownText)); } if (ETCInput.GetAxisDownLeft("Horizontal")){ downLeftText.text = "YES"; StartCoroutine( ClearText(downLeftText)); } if (ETCInput.GetAxisDownUp("Vertical")){ downUpText.text = "YES"; StartCoroutine( ClearText(downUpText)); } //持续按下与松开(持续执行)
        if (ETCInput.GetAxisPressedRight("Horizontal")){ rightText.text ="YES"; } else{ rightText.text =""; } if (ETCInput.GetAxisPressedDown("Vertical")){ downText.text ="YES"; } else{ downText.text =""; } if (ETCInput.GetAxisPressedLeft("Horizontal")){ leftText.text ="Yes"; } else{ leftText.text =""; } if (ETCInput.GetAxisPressedUp("Vertical")){ upText.text ="YES"; } else{ upText.text =""; }



 

Event注册时间 public void MoveStart(){ } public void Move(Vector2 move){ } public void MoveSpeed(Vector2 move){ } public void MoveEnd(){ } public void TouchStart(){ } public void TouchUp(){ } public void DownRight(){ } public void DownDown(){ } public void DownLeft(){ } public void DownUp(){ } public void Right(){ } public void Down(){ } public void Left(){ } public void Up(){ }