昨日に引き続き、キャラクターの向きを変える奴です。
今回はマウスの位置ではなく、スティックを倒した方向にキャラクターを向けてみます。
スティックを倒した方向にキャラクターを向ける
スティックを倒した方向にキャラクターを向けてみます。これはトップビュータイプのゲームをコンソールゲーム機やモバイルで操作する際によく見る手法の一つです。
オーバーヒートに弾切れにブーストダッシュ、HPが尽きても逃げ切れればスコアが入る等、個人的に好きな要素満載で楽しい pic.twitter.com/aCmev8z8T1
— 椿 (@tsubaki_t1) 2017年6月29日
試しに作ってみました。
スティックを用意
まずスティック操作を用意します。今回は出来る限り手を抜きたいので、CrossPlatformInputを使用してサクッと用意します。
最近の傾向だと「DualTouchControls」の方がなじみが深いと思いますが、今回は面倒なので「MobileSingleStickControl」を採用します。
左にあったJoyStickを右にも持っていき、HorizontalAxisNameを”Horizontal2”、Vertical AxisNameを”Vertical2”とか設定します。
これで CrossPlatformInputManager.GetAxis ("Vertical2"); とかでスティックの値が取得できます。
スティックの方向を向く、移動する
次にスティックを倒した方向に移動したり、向きを変えたりしてみます。前回はクリックの位置から向きを取得していましたが、今回はそのまま使ってみます。
これで向きを向いた方向に移動できました。ただコレが正常に動作するのはZが奥を向いてるときのみで、カメラを回転させると移動や向きが破たんします。
カメラの視点も考えて方向を決める
カメラの向きも考えて方向を決めます。
これで下のように、カメラの位置が変わってもスティックを上に倒せば、画面的に上の方向をキャラクターが向くようになります。