今天无意打开一个以前收录的一个工程,忘记来源了,也不知道原作者。。。。不管了,先记录下
这个方法挺好的,和渲染流水线的坐标变换一个原理。(投影变换)
代码如下:
public static class Expand
{
//检测物体是否在摄像机范围内
public static bool CheckBoundIsInCamera(this Bounds bound, Camera camera)
{
System.Func<Vector4, int> ComputeOutCode = (projectionPos) =>
{
int _code = 0;
if (projectionPos.x < -projectionPos.w) _code |= 1;
if (projectionPos.x > projectionPos.w) _code |= 2;
if (projectionPos.y < -projectionPos.w) _code |= 4;
if (projectionPos.y > projectionPos.w) _code |= 8;
if (projectionPos.z < -projectionPos.w) _code |= 16;
if (projectionPos.z > projectionPos.w) _code |= 32;
return _code;
};
Vector4 worldPos = Vector4.one;
int code = 63;
for (int i = -