Sample8の解説

 

 

Sample 8は三角形とレイの当たり判定です

 

CollisionMeshというクラスを利用して当たり判定をとっていきます

 

まず、変数フィールド内でCollisionMeshの記述をして

初期化します

 

CollisionMesh colmesh =  new CollisionMesh(Model model);
このモデルは描画することは無いので、最適化したモデルを使うといいと思います
(サンプルではそのままのモデルを使っています)

 

次にCollisionMeshの全ての三角形を得ます

 

Triangle[] triangle = CollisionMesh.GetModelTriangle();

 

これで初期化は終了です

 

次に、習得した三角形から、当たっている点を得る処理をします

Update処理内で

 

CollisionMesh.CheckCollision(Triangle[] triangle, Vector3 Position, Vector3 Direction,out Vector3 HitPosition,out Vector3 HitNormal,out float Dist);
を記述して、当たっている点を得ます
Triangle[]には初期化部分で習得した三角形を
Positionには現在の位置、Directionには向き(床判定の場合Vector3(0,-1,0))
HitPositionには当たった位置を受け取るVector3
HitNormalには当たった三角形の法線を受け取るVector3
Distには距離を受け取るfloatを設定してあげます

 

実際に使う場合は、Distの距離によってプレイヤーの位置を設定すればいいと思います

コメント

タイトルとURLをコピーしました