スマホ対応の為、キャラの行動をJoyStickとボタンで出来るようにします。
準備
プレイヤーにRigidbody2DとBoxCollider2Dを付けた状態から開始します。

Asset NiceTouchをインポートします。

Demoシーンを開き、その中にある UICamera, EventSystem, ImputModuleオブジェクトをまるごとAssetsフォルダにドロップしてプレハブ化します。


作成したいシーンを開き、プレハブ化したオブジェクトをドロップします。

UI(コントローラー)の編集
デフォルトのままだと色んなコントローラーがあるのでUIを編集します。

移動用の Joystick Repositionable と ジャンプ用の Button B 以外を非アクティブ化しました。

スクリプトの作成
ジャンプ用

移動用

プレイヤーにアタッチします。このスクリプトをコントローラーが操作されたときに呼び出します。

コントローラー側でスクリプトの呼び出し設定
ジャンプ
ボタンBを押したとき、Jump()を呼び出します。
MMTouchButton > Button Pressed First Time()にキャラクタをドロップして、No FunctionタブからJump()を選択。

マウスをボタンに重ねたときにボタンが押されるのを防ぐ為、その下にあるMouse Modeにチェックをつけます。

移動
Joystick Repositionable > MMTouch… > Joystick Value(Vector2)にジャンプと同様の手順でMoveメソッドを呼び出します。

その下にあるReset Position To Initial…にチェックを入れておくと、JoyStickを話したときにデフォルトポジションに戻ります。

以下、追加設定
Rect Transformで戻り位置を設定します。

操作可能範囲が白塗りになっており、ゲーム画面が確認しずらいので、Image Colorから透過率を変更します。(GIFの画面は10くらいになっています。)

動作確認

コメント