一人称視点 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に戻ります.
また,マウスでクリックしてもこの値は増えません.
これを追加した理由は,ブラウザで動かす事も出来る用に,
キーボード操作を残すためです.
視点移動
移動が出来るようになったので,次は視点移動を行います.
まずはキーボード入力による視点移動です.
視点移動の前に細かな変更点を
- CharacterControllerをStartで取得
- プログラム外で変更を行わないので,各変数をprivateに
- 長くなってきたので,PlayerMove()作成
- 移動速度の計算方法変更
移動の計算が前回まではMove()の時にWalkSpeedを乗算してましたが,
これだと落下方向にも掛かってしまうので,スピード設定時に乗算するように
変更しました.
それでは本題の視点移動ですが,基本的には移動と同様にPlayerRotation()にて
キー入力で視点移動方向決定→視点移動という感じです.
ただし,上下角度の制限を行っています.
注意点としては現在の角度を取得する際に
- transform.rotationは0〜1の値
- transform.eulerAnglesは0〜360の値
という点です.
それでは次にタッチ操作で視点移動!
といきたい所ですが,ここで重大なミスが発覚…
とりあえず今回はここまで.