123456789101112131415161718192021222324252627282930313233 |
- #if UNITY_EDITOR
- using UnityEngine;
- namespace O3DWB
- {
- public class CameraPotentialVisibleObjectsBox
- {
- #region Private Variables
- private OrientedBox _orientedBox = new OrientedBox();
- #endregion
- #region Public Properties
- public Vector3 Center { get { return _orientedBox.Center; } }
- public Vector3 HalfSize { get { return _orientedBox.ModelSpaceExtents; } }
- public Quaternion Rotation { get { return _orientedBox.Rotation; } }
- #endregion
- #region Public Methods
- public void Calculate(Camera camera, CameraViewVolume cameraViewVolume)
- {
- Transform cameraTransform = camera.transform;
- _orientedBox = new OrientedBox();
- _orientedBox.Rotation = cameraTransform.rotation;
- _orientedBox.Center = cameraTransform.position + cameraTransform.forward * cameraViewVolume.FarClipPlaneDistance * 0.5f;
- _orientedBox.ModelSpaceSize = new Vector3((cameraViewVolume.TopLeftPointOnFarPlane - cameraViewVolume.TopRightPointOnFarPlane).magnitude,
- (cameraViewVolume.TopLeftPointOnFarPlane - cameraViewVolume.BottomLeftPointOnFarPlane).magnitude,
- cameraViewVolume.FarClipPlaneDistance - cameraViewVolume.NearClipPlaneDistance);
- }
- #endregion
- }
- }
- #endif
|