Version: 2022.3

GeometryUtility.CalculateFrustumPlanes

切换到手册
public static Plane[] CalculateFrustumPlanes (Camera camera);

参数

camera 具有视椎体的摄像机,将从该视椎体计算平面。

返回

Plane[] 构成摄像机视椎体的平面。

描述

计算视锥体平面。

此函数采用给定摄像机的视椎体,然后返回形成此视椎体的六个平面。

排序:[0] = 左、[1] = 右、[2] = 下、[3] = 上、[4] = 近、[5] = 远

另请参阅:PlaneGeometryUtility.TestPlanesAABB

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { // Calculate the planes from the main camera's view frustum Plane[] planes = GeometryUtility.CalculateFrustumPlanes(Camera.main);

// Create a "Plane" GameObject aligned to each of the calculated planes for (int i = 0; i < 6; ++i) { GameObject p = GameObject.CreatePrimitive(PrimitiveType.Plane); p.name = "Plane " + i.ToString(); p.transform.position = -planes[i].normal * planes[i].distance; p.transform.rotation = Quaternion.FromToRotation(Vector3.up, planes[i].normal); } } }

public static void CalculateFrustumPlanes (Camera camera, Plane[] planes);

参数

camera 具有视椎体的摄像机,将从该视椎体计算平面。
planes 6 个 Planes 的数组,将用计算的平面值填充覆盖。

描述

计算视锥体平面。

此函数采用给定摄像机的视椎体,然后返回形成此视椎体的六个平面。该函数将使用您提供的数组,而不是为计算的平面分配新数组,除此之外,与上一个重载类似。该数组的长度必须始终正好为 6。

排序:[0] = 左、[1] = 右、[2] = 下、[3] = 上、[4] = 近、[5] = 远

另请参阅:PlaneGeometryUtility.TestPlanesAABB


public static Plane[] CalculateFrustumPlanes (Matrix4x4 worldToProjectionMatrix);

参数

worldToProjectionMatrix 从世界空间变换为投影空间的矩阵,将从该矩阵计算这些平面。

返回

Plane[] 包围该矩阵描述的投影空间的平面。

描述

计算视锥体平面。

此函数返回由给定视图和投影矩阵定义的视椎体的六个平面。

另请参阅:PlaneGeometryUtility.TestPlanesAABB


public static void CalculateFrustumPlanes (Matrix4x4 worldToProjectionMatrix, Plane[] planes);

参数

worldToProjectionMatrix 从世界空间变换为投影空间的矩阵,将从该矩阵计算这些平面。
planes 6 个 Planes 的数组,将用计算的平面值填充覆盖。

描述

计算视锥体平面。

此函数返回由给定视图和投影矩阵定义的视椎体的六个平面。该函数将使用您提供的数组,而不是为计算的平面分配新数组,除此之外,与上一个重载类似。该数组的长度必须始终正好为 6。

另请参阅:PlaneGeometryUtility.TestPlanesAABB