ラベル コリジョン の投稿を表示しています。 すべての投稿を表示
ラベル コリジョン の投稿を表示しています。 すべての投稿を表示

2011年3月22日火曜日

コライダに関するメモ2

ChaacterControllerとColliderの衝突判定だと

CharacterController付きゲームオブジェクトのOnControllerColliderHit側だけしか判定できない?
CharacterController付きゲームオブジェクトAとBoxCollider付きゲームオブジェクトBで
BにOnCollisionEnterを書いても反応せず。

リファレンスを読んでみると、CharacterControllerについては記述見当たらない。
http://unity3d.com/support/documentation/ScriptReference/Collider.OnCollisionEnter.html?from=Collision

OnControllerColliderHit(ControllerColliderHit hit)内で
Aと衝突するオブジェクトBをタグ付けて、分岐させたのち
hit.collider.gameObject.GetComponent<T>().Hoge();
でBの衝突メソッドを呼び出して解決してみた。

コリジョンの状態

CharacterController.Moveの返り値CollisionFlagsで
CollidedAbove
CollidedSides
CollidedBelow
CollidedNone

if(collisionFlags & CollisionFlags.CollidedAbove)
if(collisionFlags == CollisionFlags.CollidedAbove)
で上、下、横のどこで衝突しているか判定できる