Unity5.5+easytouch5雙搖桿控制角色移動


第一步:新建兩個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);

即可實現死亡后雙搖桿的禁用,到此時就大功告成!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM