FPS遊戲之人物控制
阿新 • • 發佈:2018-11-12
最近在做策劃給的一些關於FPS型別的需求,Demo基本已經成型,接下來整理並記錄,高手略過,不喜勿噴!!!
1.主角控制移動控制EasyTouch5 外掛,這裡就不提供下載地址了,可以去官網或者百度都可以找到
2.動畫用的是Mecanim動畫系統
一、接下來說一下具體的製作過程
1.匯入外掛
在Hierarchy (層次面板)中建立 EasyTouch
新增 InoputManager
新增 JoyStick 面板會自動新增一些必要的物件 (名稱修改)
到此基本把主角移動面板上的設定搞定了,看下效果
在Hierarchy (層次面板)新增TouchPad用來控制相機
控制移動的joystick區域設定在左半屏,移動的區域設定在右半屏
效果
通過以上設定就可以實現指令碼的移動和鏡頭的旋轉
2.動畫用的是Mecanim動畫系統
狀態機(2D自由混合模式)
X,Y 為動畫引數控制移動
接下來給主角掛指令碼Fps_Move
public ETCJoystick joystickMove; private Animator avatar; void Awake () { avatar = this.GetComponentInChildren<Animator>(); //easttouch5 事件寫法 joystickMove.onMove.AddListener(JoystickMove); joystickMove.onMoveEnd.AddListener(JoystickMoveEnd); } private void JoystickMoveEnd() { //avatar.SetFloat("Speed", 0); //avatar.SetFloat("Direction", 0); avatar.SetFloat("X", 0); avatar.SetFloat("Y", 0); } private void JoystickMove(Vector2 arg0) { float joyX = arg0.x; float joyY = arg0.y; if (joyX != 0 || joyY != 0 || avatar) { //通用混合(1D) //avatar.SetFloat("Speed", (joyX * joyX + joyY * joyY)); //avatar.SetFloat("Direction", Mathf.Atan2(joyX, joyY) * 180.0f / 3.14159f); //2D自由混合模式 avatar.SetFloat("X", joyX, 10, 100 * Time.deltaTime); avatar.SetFloat("Y", joyY, 10, 100 * Time.deltaTime); }
這樣主角就可以通過easytouch的控制播放動畫了