(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

一人称視点 in iOS (2)【Unity】


このエントリーをはてなブックマークに追加

一人称視点 in iOS (1)【Unity】【開発状況】 - (:3[kanのメモ帳]

の続きです.

  

バーチャルパッド

 

まずは前回キーボードで移動していた部分を

バーチャルパッドにしていきます.

 

バーチャルパッドを設定

テラシュールウェア [Unity3D]スマートフォンに仮想パットを付ける

 ↑の通り.簡単〜

 

 

JoystickのデフォルトのプログラムがjsなのでC#に変更

Unity3D Joystick Script « Chris Danielson's Blog

言語が違うと参照する時に面倒な気がしたので.

 

 

キャラクターのスクリプト変更

 

Unity Character Controller バーチャルパッド移動

  

バーチャルパットのオブジェクトを取得した後,

そのオブジェクトのコンポーネントであるスクリプトを取得しています.

GameObject.Find("Joystick").GetComponent<MPJoystick>()

でいきなスクリプトを取得しても問題有りません.

 

 

tapCountはタップされた回数で,指を離すと0に戻ります.

また,マウスでクリックしてもこの値は増えません.

 

これを追加した理由は,ブラウザで動かす事も出来る用に,

キーボード操作を残すためです.

 

 

視点移動

移動が出来るようになったので,次は視点移動を行います.

まずはキーボード入力による視点移動です.

  

Unity 移動+視点移動(未完)

 

視点移動の前に細かな変更点を

  • CharacterControllerをStartで取得
  • プログラム外で変更を行わないので,各変数をprivateに
  • 長くなってきたので,PlayerMove()作成
  • 移動速度の計算方法変更

移動の計算が前回まではMove()の時にWalkSpeedを乗算してましたが,

これだと落下方向にも掛かってしまうので,スピード設定時に乗算するように

変更しました.

 

 

それでは本題の視点移動ですが,基本的には移動と同様にPlayerRotation()にて

キー入力で視点移動方向決定→視点移動という感じです.

ただし,上下角度の制限を行っています.

 

注意点としては現在の角度を取得する際に

  • transform.rotationは0〜1の値
  • transform.eulerAnglesは0〜360の値

という点です.

 

それでは次にタッチ操作で視点移動!

といきたい所ですが,ここで重大なミスが発覚…

 

 

とりあえず今回はここまで.