Appearance
第01回 3Dダイスポーカー
3 / 4 内積から出目を求める
このステップの目的
サイコロの面の法線とワールド上方向の内積から、最も上を向いた面を選ぶ
面の向きを比較する
各面にローカル座標の法線と出目を登録しておき、ワールド空間へ変換します。
csharp
float alignment = Vector3.Dot(faceNormalWorld, Vector3.up);内積が1に近いほど面は真上を向き、0に近いほど横向き、負の値ほど下を向いています。
最大値の面を選ぶ
6面を順番に調べ、alignmentが最大の面の番号を出目として返します。面の数を固定したまま、判定処理とサイコロの見た目を分離します。
チェックリスト
- 面ごとの法線をワールド空間へ変換している
-
Vector3.Dotで上方向との一致度を求めている - 最大の一致度を持つ面を出目にしている