第一步:新建兩個Joystick,分別改名LeftJoyStick和RightJoyStick
在LeftJoyStick的ETC Joystick-Axes properties中的Horizontal axis-General setting中將要控制的人物Player拖入框中,action選translate,Affected action選 X

到現在位置,就可以通過左搖桿控制人物移動了,人物移動太快怎么辦,Speed調慢點即可。
下面開始設置人物移動時要調用Move動畫,用bool控制,這個事先做好這里不再闡述,那么如何調用呢?
打開Player角色下的Player腳本(原先鍵盤控制的腳本),添加兩個公開函數
1 public void RunAnimatorOpen() 2 { 3 m_Animator.SetBool("move", true); 4 } 5 6 public void RunAnimatorStop() 7 { 8 m_Animator.SetBool("move", false); 9 }
然后在leftjoystick的etc的MoveEvents框中的OnMoveStart()和OnMoveEnd()
分別將Player角色物體拖入target框選擇Gameobject.BroadcastMessage,下面分別填入
RunAnimatorOpen
與
RunAnimatorStop
這時候搖桿移動就會調用RunAnimatoropen函數,不移動就調用RunAnimatorStop函數,從而達到控制動畫的效果。

第二步,開始對右搖桿設置,首先在Player腳本添加下面一段
1 public void MoveInRightJoyStick(Vector2 weizhi) 2 { 3 if (weizhi.y != 0 || weizhi.x != 0) 4 { 5 //設置角色的朝向(朝向當前坐標+搖桿偏移量) 6 transform.LookAt(new Vector3(transform.position.x + weizhi.x, transform.position.y, transform.position.z + weizhi.y)); 7 } 8 }
簡單來說就是easytouch通過OnMoveSpeed傳出一個Vector2,所以我們要在Player腳本創一個函數(變量是Vector2)用於接受傳出的Vector2,並且利用這個與人物的位置構成一個矢量,再用LookAt就能控制人物朝向了。
調試沒問題后,但是發現死亡后還能移動和旋轉,怎么辦?
第三步,原本在人物Player下有一個HealthManager的腳本,里面有個Dead()的函數,一旦hp<=0后就會禁用有關腳本的調用,這時我們只要在函數中其中加兩句
1 ETCInput.SetControlActivated("LeftJoystick", false); 2 ETCInput.SetControlActivated("RightJoystick", false);
即可實現死亡后雙搖桿的禁用,到此時就大功告成!!