Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

GeometryUtility.TestPlanesAABB

Объявление

public static bool TestPlanesAABB(Plane[] planes, Bounds bounds);

Описание

Возвращает значение true, если границы находятся внутри массива плоскости.

Возвращает значение true, если ограничивающая рамка находится внутри плоскостей или пересекает любую из плоскостей.

Функция TestPlanesAABB использует массив Plane для проверки того, находится ли ограничивающая рамка в области усечения или нет. Вы можете использовать эту функцию с CalculateFrustrumPlanes, чтобы проверить, содержит ли вид камеры объект, независимо от того, визуализируется он или нет. Тест консервативен и может давать ложноположительные результаты. Ограничивающая рамка может пересекать плоскости за пределами усеченного конуса, потому что плоскости бесконечны и выходят за пределы объема усеченного конуса. Типичный ложноположительный результат возникает из-за большой ограничивающей рамки рядом с краем или углом усеченной пирамиды.

Смотрите так же: GeometryUtility.CalculateFrustumPlanes.

using UnityEngine; public class Example : MonoBehaviour { // Detects manually if obj is being seen by the main camera GameObject obj; Collider objCollider; Camera cam; Plane[] planes; void Start() { cam = Camera.main; planes = GeometryUtility.CalculateFrustumPlanes(cam); objCollider = GetComponent<Collider>(); } void Update() { if (GeometryUtility.TestPlanesAABB(planes, objCollider.bounds)) { Debug.Log(obj.name + " has been detected!"); } else { Debug.Log("Nothing has been detected"); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3