Character Controllerの正しい使い方
キャラクタコントローラ(Character Controller)はプレーヤおよびNPCキャラクターによるアクションゲームやシューティングゲーム向けに設計されている。この用途について大変すぐれた機能であり、複雑なロジックを伴う移動床面、別キャラクターが進路を塞ぐ、等々の場面もカバー出来る。物理(Physics)エンジンを使用したい場合はCharacter Controllerを使用しないこと。このケースではカスタムのスクリプトを作成する必要がある。
多くのゲームではCharacterに不向きなケースがあるので、必要機能をあらかじめ把握してから着手するのが良い。使用するのは必要である状況に限ること。
Character Controllerに物理オブジェクトに作用させることは可能であり、例えば押しのける動作などは実現できる。ただしスクリプトをいくらか付け加える必要があり、物理エンジンとの相互作用が現実的でない動きを引き起こすこともある。
Unityマニュアルの参考例
Character ControllerはデフォルトでRigidbodyがアタッチされてないことに留意する必要があり、このためデフォルトではOnCollisionやOnTriggerは呼出されない。KinematicをオンにしたRigidbodyをアタッチするかOnControllerColliderHitのいずれかで衝突判定を行うことになる。
Character Controllerの動作を制御する際は必ずSimpleMoveあるいはMoveを使用すること。決してPositionを直接更新してはならない。
-----
キャラクタ制御も複雑なコードを記述することなくゲーム開発できるのはUnityの強み。正しくポイントを理解してゲームに生かそうぜ!
0 件のコメント:
コメントを投稿