http://wiki.unity3d.com/index.php/Tip_of_the_day
Aug 2012
Tip #26 - Frustum AABB collisions
Frustum および AABB 衝突判定は次のようなコードで実行できます。
AABB衝突判定でGoogle検索するとこういうサイトで解説してくれてるなぁ~
Frustum AABB 衝突
Tip #26 - Frustum AABB collisions
Frustum および AABB 衝突判定は次のようなコードで実行できます。
public object[] GetObjects(Vector3 position, float distance, float fov, Vector3 direction) { var results = new List----------(); // 全てのゲームオブジェクトを検索 var objects = UnityEngine.Object.FindObjectsOfType(typeof(GameObject)); if (this.camera == null) { this.cameraGameObject = new GameObject(); this.camera = this.cameraGameObject.AddComponent (); } this.cameraGameObject.transform.position = position; this.cameraGameObject.transform.forward = direction; this.camera.fov = fov; this.camera.far = distance; var planes = GeometryUtility.CalculateFrustumPlanes(this.camera); foreach (GameObject obj in objects) { if (obj == this.cameraGameObject) { continue; } // Collider がなければ無視する if (obj.collider == null) { continue; } if (GeometryUtility.TestPlanesAABB(planes, obj.collider.bounds)) { results.Add(obj); } } return results.ToArray(); }
AABB衝突判定でGoogle検索するとこういうサイトで解説してくれてるなぁ~
結果だけでなく過程も見てください:実践的な衝突判定(AABB編)
http://d.hatena.ne.jp/taiyakisun/20120205/1328410006
ん~、Unityの通常の判定で不十分なケースで使えるかな??もうちっと考えてみることにするかぁ~(おい)
0 件のコメント:
コメントを投稿