3Dでボールが床と接しているかの判定をRaycastを使ってしたいです。
ボールと床のレイヤーはdefaultにあるのですが、Unity公式のリファレンス通りのソースコードだと、常に接していないとでてしまいます。
下記ソースはボールの下側に向けて10の長さのRayを出しているつもりなのですが、こちら書き方が違うのでしょうか。
一時的にレイヤーマスクの指定は使っておりません。この辺が原因な気もするのですが、詳細理解できておらず申し訳ないです。
C#
1 2 public GameObject ground; 3 4 void Update() { 5 6 int layerMask = 1 << 8; 7 layerMask = ~layerMask; 8 9 RaycastHit hit; 10 11 // Does the ray intersect any objects excluding the player layer 12 if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), out hit, 10.0f)) { 13 //Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.down) * hit.distance, Color.yellow); 14 //Debug.Log("Did Hit"); 15 } else { 16 //Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.down) * 1000, Color.white); 17 Debug.Log("Did not Hit"); 18 } 19 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。