|
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 frustrum.
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 example : 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
class example(MonoBehaviour):
private cam as Camera
private planes as (Plane)
def Start():
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++
Calculates frustum planes.
This function returns six planes of a frustum defined by given view & projection matrix.
See Also: Plane, GeometryUtility.TestPlanesAABB.