您好,登錄后才能下訂單哦!
這篇文章主要講解了unity實現手機端搖桿控制人物移動的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
前言
玩過王者榮耀或者荒野行動的人,都知道,手機左下方或右下方都會有一個搖桿,滑動搖桿可以讓人物向360度方向移動。沒有玩過的可以看看下方圖片(荒野行動手機端為例)。本篇就來講解如何使用unity制作搖桿控制人物移動。
2種方法:
1.GUITexture制作,是unity自帶的一個joystick組件,主要由GUITexture和一個JS腳本構成。優點:unity自帶,使用簡單方便。缺點是無法適應屏幕大小。
2.EasyTouch插件,可以實現1的功能并且克服了1的缺陷,可以適應屏幕大小。本篇文章也是主要講解使用easyTouch插件實現搖桿控制人物移動。
準備
1.導入easyTouch包。在網上下載easyTouch的package,然后import到項目中,這時候,菜單會出現Tools。這時候搖桿我們具備了。
2.導入人物。unity功能超級強大,自帶一個人物模型,叫Ethan。這個時候要導入Standard Assets。里面就有Ethan模型(具體在Standard Assets--character--ThirdPersonCharacter--Models--Ethan)。
具體實現
1.點擊菜單中的tools--Hedgehog Team--EasyTouch--Extensions--Add a new joystick,這時候scene中就有了一個搖桿。
2.導入Ethan,找到Ethan直接拖到scene中就OK。
3.joystick參數設置和介紹見下圖
3.寫腳本,綁定到人物Ethan上。
using UnityEngine; using System.Collections; public class MoveController : MonoBehaviour { void OnEnable() { EasyJoystick.On_JoystickMove += OnJoystickMove; EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd; } //移動搖桿結束 void OnJoystickMoveEnd(MovingJoystick move) { //停止時,角色恢復狀態為idle if (move.joystickName == "MoveJoystick") { GetComponent<Animation>().CrossFade("idle"); } } //移動搖桿中 void OnJoystickMove(MovingJoystick move) { if (move.joystickName != "MoveJoystick") { return; } //獲取搖桿中心偏移的坐標 float joyPositionX = move.joystickAxis.x; float joyPositionY = move.joystickAxis.y; //搖桿中心位置只要產生變動,即只要對搖桿進行操作 if (joyPositionY != 0 || joyPositionX != 0) { //移動玩家的位置(按朝向位置移動) transform.Translate(Vector3.forward * Time.deltaTime * 100); //播放奔跑動畫 GetComponent<Animation>().CrossFade("run"); } } } #endregion
4.由于腳本中人物的移動是播放動畫,unity本身就有很多走啊、跑啊、靜止的一些動畫,所以我們現在為Ethan添加動畫(animation)。如下圖所示:
5.由于我們的游戲是純第一人稱游戲,所以是不需要再游戲中看到自己的。所以為Ethan添加First Person Controller的腳本。(這個根據項目需要而定)。
看完上述內容,是不是對unity實現手機端搖桿控制人物移動的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。