今回はFirstPersonControllerをjoystickで動かせるようにして携帯に対応させる方法を解説していきます。
最終的な仕上がりは以下の動画のように動かせるようになります。
joystickのダウンロード
[windows] → [Asset Store] → [joystick]で調べていただくと下記のjoystickが出てくると思うので、DownloadしたのちImportしてください。
StandardAssetsのダウンロード
こちらもjoystickと同様に[Assetstore] → [StandardAssets] で調べていただくと下記のStandardAssetsが出てくるので、DownloadしたのちImportしてください。
環境設定
joystickとStandardAssetsのダウンロードとインポートが終了しましたら、planeとcubeを適当な場所に配置してFPScharactorが動いているか確かめられるような環境を作成してください。
UIの設定
それではUIを作成していきましょう。
まず、[GameObject] → [UI] → [Canvas]でCanvasを挿入していきます。
次に画面を2Dに設定し、Canvasの設定を下記の写真のように設定します。
それが終わりましたら、Projectから[JoystickPack] → [Prefab] → [FixedJoystick]でFixedJoystickをCanvasの中にいれてあげてください。
下記の写真のような感じになると思います。
次はFPSControllerの設定になります。
FPScontrollerの設定
環境の設定が終了しましたら、AssetStoreからFPSControllerをplane上に配置してください。
FPSControllerのInspectorの設定は下記のようになります。
まず、FPSControllerに追加されているScriptであるFirstPersonCharactorのチェックを外すもしくは取り除いてください。
次にrigidbodyのIsKinematicのチェックが外れていることを確認して下さい。
それ以外の設定は、自由に設定して大丈夫だと思います。
JoystickでFPSContnrollerを操作するScriptを挿入する
joystickMobileというscriptを作成して下記のコードを添付します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class joystickMobile : MonoBehaviour { protected Joystick joystick; private Transform firstPos; private void Start() { joystick = FindObjectOfType<Joystick>(); } private void Update() { Vector3 velocity = gameObject.transform.rotation * new Vector3(joystick.Horizontal * 4.5f, 0, joystick.Vertical * 4.5f); gameObject.transform.position += velocity * Time.deltaTime; } } |
最後にこのscriptをFPSControllerに追加してあげると、joystickで自由自在に動かせると思います。