Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

GeometryUtility.CalculateFrustumPlanes

static function CalculateFrustumPlanes(camera: Camera): Plane[];
static Plane[] CalculateFrustumPlanes(Camera camera);
static def CalculateFrustumPlanes(camera as Camera) as Plane[]

Description

Calculates frustum planes.

This function takes given camera's view frustum and returns six planes that form it.

See Also: Plane, GeometryUtility.TestPlanesAABB.

	// Creates 6 planes that represent the camera frustum.

private var cam : Camera; private var planes : Plane[];

function Start() { cam = Camera.main; planes = GeometryUtility.CalculateFrustumPlanes(cam);

for(var i : int = 0; i < planes.Length; i++) { var p : GameObject = 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); } }

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    private Camera cam;
    private Plane[] planes;
    void Start() {
        cam = Camera.main;
        planes = GeometryUtility.CalculateFrustumPlanes(cam);
        int i = 0;
        while (i < planes.Length) {
            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);
            i++;
        }
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	private cam as Camera

	private planes as (Plane)

	def Start() as void:
		cam = Camera.main
		planes = GeometryUtility.CalculateFrustumPlanes(cam)
		i as int = 0
		while i < planes.Length:
			p as GameObject = 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)
			i++

static function CalculateFrustumPlanes(worldToProjectionMatrix: Matrix4x4): Plane[];
static Plane[] CalculateFrustumPlanes(Matrix4x4 worldToProjectionMatrix);
static def CalculateFrustumPlanes(worldToProjectionMatrix as Matrix4x4) as Plane[]

Description

Calculates frustum planes.

This function returns six planes of a frustum defined by given view & projection matrix.

See Also: Plane, GeometryUtility.TestPlanesAABB.