カメラワークとプレイヤーの動きをUnityで実装する Part2 <ゼルダの伝説シリーズ>
かずまです。
前回の記事はこちら。
そう、ゼルダの伝説です。
考察
リンクの動きはカメラの方向が正面になります。
なので、動いている時にカメラを回転させたらその方向に移動する感じですね。
Playerを実装
まずはPlayerを動かします。
今回は拡張性を踏まえてCharactorControllerを使わないで自分で実装します。
上記スクリプトを書きます。
CharactorControllerではisGroundがあったので、それも実装してしまいます。
- Raycastで距離を測る
- Colliderでのあたり判定
この2つによって実装されます。
Colliderだけだと天井などに当たったときに反応してしまうのでRaycastも使います。
つけるコンポーネントは以下の通りです。
RigidbodyをつけてFreeze Rotationをすべてチェックいれます。
これをしないと物に当たった時に制御できなくなります。
次にPlayer.csを実装します。
これをPlayerのオブジェクトにくっつけます。
前回のブログでもちょこっとかきましたが、それにすこし付け足します。
UnityでXboxOneコントローラを使う…前に | 蒼玉亭
ここを参考にして、Playerの動きはXbox Controllerの左スティック、カメラの動きは右スティックを使って制御します。
Edit -> Project Settings -> Input
からMouse XとMouse Yがあるとおもうので、以下のように変更してあげます。
これでInput.GetAxis("Mouse X")でOKになります。