第2回 自作ゲームの経過報告 ~Easy Touch Controls の Auto Stabilisation を手動にしてみた~
Easy Touch Controls の Auto Stabilisation を手動にしてみた!
オートマティック・スタビリゼーション(Automatic Stabilisation)
とは、自動安定化のことです。
タッチパッドやジョイスティックで
視点を上下させた後、指を離すと視点が自動で中心に戻るシステムです。
おそらく飛行機やヘリコプター、ドローンのゲームで
機体を安定させるために用意されたシステムかと思いますが、
FPSでこの機能を使えば、タッチパッドの操作が楽になりそうだったので
ソースコードに少々手を加え、手動安定化(勝手に命名)してみました。
これがその動画です。
タッチパッドを一回タップすると視点が自動で中心に戻ります。
ジョイスティックで移動中も作動します。
プレイヤーがゲーム中に使って
便利になるかどうか分かりませんが
とりあえず実装してみました。
それでは作り方です。
※以下、Easy Touch が必要です。
名前は ManualStabilisation にしましたが、何でもいいです。
このスクリプトに以下のコードを記述(コピペ)します。
セーブしたらこのスクリプトを
前回の記事で作成した、Hierarchy の TouchPad に
ドラッグ&ドロップし、アタッチします。
次に、この TouchPad をクリックし、
Inspector を表示させて、以下のように設定します。
ついでに、Automatic Stabilization にチェックを入れ、
Vertical の Speed を 370 にしてからチェックを外しておきましょう。
これは視点が戻るときの速度です。
手動安定化では、Easy Touch の タップ機能を使います。
Inspector の Add Component から
Easy Touch → Quick Tap をアタッチします。
Quick Tap は以下のように設定します。
"On Tap" の空欄にはオブジェクトが必要です。
Hierarchy の TouchPad(このオブジェクト) をドラッグし、
この空欄にドロップします。
メソッドの指定は、ManualStabilisation → playAutoStab を選びます。
もう少しで終わりです!
Easy Touch の ETCAxis と ETCTouchPad スクリプトを開きます。
ETCAxis では、
public void UpdateAxis メソッドの
// Auto stabilization の上の行に、以下のコードを記述(コピペ)します。
最後に、ETCTouchPad で、
private void UpdateTouchPad メソッドの
axisX.UpdateAxis( tmpAxis.x,isOnDrag,ETCBase.ControlType.DPad);
axisY.UpdateAxis( tmpAxis.y,isOnDrag,ETCBase.ControlType.DPad);
をコメントアウトし、
// axisX.UpdateAxis( tmpAxis.x,isOnDrag,ETCBase.ControlType.DPad);
// axisY.UpdateAxis( tmpAxis.y,isOnDrag,ETCBase.ControlType.DPad);
にします。
後は、以下のコードを記述(コピペ)します。
以上で完了です。お疲れ様でした。
使用したアセット