Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Copyright 2015 Nicholas Costello <NicholasJCostello@gmail.com>
- using UnityEngine;
- namespace Assets.Scripts.Extensions
- {
- /// <summary>
- /// Camera frustum extensions
- /// </summary>
- public static class CameraFrustumExtensions
- {
- /// <summary>
- /// Returns the frustum's height at the given distance from the camera.
- /// This returns the entire height from top to bottom, so if your camera is at 0,0
- /// the frustums top is at: Frustrumheight/2 and bottom is at: -Frustrumheight/2
- /// </summary>
- /// <param name="camera"></param>
- /// <param name="distance"></param>
- /// <returns></returns>
- public static float FrustumHeightAtDistace(this Camera camera, float distance)
- {
- return 2.0f * distance * Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad);
- }
- /// <summary>
- /// Returns the distance from camera a given frustrum height can be found
- /// </summary>
- /// <param name="camera"></param>
- /// <param name="frustumHeight"></param>
- /// <returns></returns>
- public static float DistanceAtFrustumHeight(this Camera camera, float frustumHeight)
- {
- return frustumHeight*0.5f/Mathf.Tan(camera.fieldOfView*0.5f*Mathf.Deg2Rad);
- }
- /// <summary>
- /// Returns the frustum's width at a given distance from the camera.
- /// </summary>
- /// <param name="camera"></param>
- /// <param name="frustumHeight"></param>
- /// <returns></returns>
- public static float FrustumWidthAtFrustumHeight(this Camera camera, float frustumHeight)
- {
- return frustumHeight*camera.aspect;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement