f:id:tsubaki_t1:20170703230905g:plain

昨日に引き続き、キャラクターの向きを変える奴です。
今回はマウスの位置ではなく、スティックを倒した方向にキャラクターを向けてみます。

tsubakit1.hateblo.jp

  • スティックを倒した方向にキャラクターを向ける
    • スティックを用意
    • スティックの方向を向く、移動する
    • カメラの視点も考えて方向を決める
  • 関連

スティックを倒した方向にキャラクターを向ける

スティックを倒した方向にキャラクターを向けてみます。これはトップビュータイプのゲームをコンソールゲーム機やモバイルで操作する際によく見る手法の一つです。

 試しに作ってみました。

スティックを用意

まずスティック操作を用意します。今回は出来る限り手を抜きたいので、CrossPlatformInputを使用してサクッと用意します。

最近の傾向だと「DualTouchControls」の方がなじみが深いと思いますが、今回は面倒なので「MobileSingleStickControl」を採用します。

左にあったJoyStickを右にも持っていき、HorizontalAxisNameを”Horizontal2”、Vertical AxisNameを”Vertical2”とか設定します。
これで CrossPlatformInputManager.GetAxis ("Vertical2"); とかでスティックの値が取得できます。

f:id:tsubaki_t1:20170703231424j:plain

f:id:tsubaki_t1:20170703232025j:plain

f:id:tsubaki_t1:20170703231606g:plain

スティックの方向を向く、移動する

次にスティックを倒した方向に移動したり、向きを変えたりしてみます。前回はクリックの位置から向きを取得していましたが、今回はそのまま使ってみます。

gist.github.com

f:id:tsubaki_t1:20170703232720g:plain

これで向きを向いた方向に移動できました。ただコレが正常に動作するのはZが奥を向いてるときのみで、カメラを回転させると移動や向きが破たんします。

f:id:tsubaki_t1:20170703232830g:plain

カメラの視点も考えて方向を決める

カメラの向きも考えて方向を決めます。

tsubakit1.hateblo.j

これで下のように、カメラの位置が変わってもスティックを上に倒せば、画面的に上の方向をキャラクターが向くようになります。

 

gist.github.com

関連

tsubakit1.hateblo.jp

qiita.com

tsubakit1.hateblo.jp