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の距離によってプレイヤーの位置を設定すればいいと思います

« 前の記事: を読む

次の記事: を読む »

コメント

※名前の入力は必須です

コメントを残す

---

以下のHTMLタグが使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

※管理人にのみコメントを残す場合は、こちらのフォームよりお願いします