Возвращает true, если границы находятся внутри какой-либо плоскости массива.
Вернет true, если ограничивающий прямоугольник находится внутри плоскостей или пересекает любую из них.
The TestPlanesAABB function uses the Plane array to test whether a bounding box is in the frustum or not.
Можно использоваться данную функцию с функцией CalculateFrustrumPlanes для проверки того, в поле зрения какой камеры попал объект,
независимо от того рендерится объект или нет.
См. также: GeometryUtility.CalculateFrustumPlanes.
// Detects manually if anObject is being seen by the main camera
var anObject : GameObject; var anObjCollider: Collider;
private var cam : Camera; private var planes : Plane[];
function Start() { cam = Camera.main; planes = GeometryUtility.CalculateFrustumPlanes(cam); anObjCollider = GetComponent.<Collider>(); }
function Update() { if(GeometryUtility.TestPlanesAABB(planes,anObjCollider.bounds)) Debug.Log(anObject.name + " has been detected!"); else Debug.Log("Nothing has been detected"); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public GameObject anObject; public Collider anObjCollider; private Camera cam; private Plane[] planes; void Start() { cam = Camera.main; planes = GeometryUtility.CalculateFrustumPlanes(cam); anObjCollider = GetComponent<Collider>(); } void Update() { if (GeometryUtility.TestPlanesAABB(planes, anObjCollider.bounds)) Debug.Log(anObject.name + " has been detected!"); else Debug.Log("Nothing has been detected"); } }