private static bool GetFrustum(Camera camera, Vector3[] near, Vector3[] far, out float frustumAspect)
{
frustumAspect = GetFrustumAspectRatio(camera);
if (frustumAspect < 0f)
{
return false;
}
if (far != null)
{
far[0] = new Vector3(0f, 0f, camera.farClipPlane);
far[1] = new Vector3(0f, 1f, camera.farClipPlane);
far[2] = new Vector3(1f, 1f, camera.farClipPlane);
far[3] = new Vector3(1f, 0f, camera.farClipPlane);
for (int i = 0; i < 4; i++)
{
far[i] = camera.ViewportToWorldPoint(far[i]);
}
}
if (near != null)
{
near[0] = new Vector3(0f, 0f, camera.nearClipPlane);
near[1] = new Vector3(0f, 1f, camera.nearClipPlane);
near[2] = new Vector3(1f, 1f, camera.nearClipPlane);
near[3] = new Vector3(1f, 0f, camera.nearClipPlane);
for (int j = 0; j < 4; j++)
{
near[j] = camera.ViewportToWorldPoint(near[j]);
}
}
return true;
}