返回介绍

GeometryUtility.TestPlanesAABB 测试平面

发布于 2019-12-18 15:37:42 字数 2966 浏览 1543 评论 0 收藏 0

JavaScript => public static function TestPlanesAABB(planes: Plane[], bounds: Bounds): bool;
C# => public static bool TestPlanesAABB(Plane[] planes, Bounds bounds);

Parameters 参数

Description 描述

Returns true if bounds are inside the plane array.

如果传入的bounds在由plane数组所组成的平面内,返回真。

Will return true if the bounding box is inside the planes or intersects any of the planes.

如果传入的bounds在由plane数组所组成的平面内或与平面相交的话,返回真。

The TestPlanesAABB function uses the Plane array to test whether a bounding box is in the frustum or not.

TestPlanesAABB函数使用Plane数组来测试边界盒是否在视锥体内。

You can use this function with CalculateFrustrumPlanes to test whether a camera's view contains an object regardless of whether it is rendered or not.

这个函数常常用来和GeometryUtility.CalculateFrustumPlanes配合测试bounds是否在视野范围内。

See Also: GeometryUtility.CalculateFrustumPlanes.

JavaScript:

// Detects manually if anObject is being seen by the main camera。手动检测anObject是否被主摄像机看到。
 
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");
}

C#:

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");
    }
}

GeometryUtility

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文