相机可视范围
图片展示为 unity 实际代码为creator
如图所示 只显示相机 可以看见的范围 大一圈 避免不不要的性能浪费 这是所有地图游戏必须具备的一个功能
实现思路 从相机 四个角 画出直线 与 平面相交的点 就是 可视范围的点 注意俯视图 与平面 相交的点 是梯形或者是不规则四边形的所以 判断是否在 区域内 要自己写代码 判断
spet 1 获取 相机与 平面的四个交点
creator 实现方式
/**
creator 实现方式 creator 相机里面以一个属性是 camera.camera.frustum.vertices 这里面是 摄像机
锥形体的八个顶点 分别是 进裁剪面 和元裁剪面的 顶点 ray_plane 射线与平面相交的点 点乘
就是 射线的原点 点乘平面的法向量 / 射线的方向 点乘 平面的 法向量 得到距离 然后 原点 - 射线向量 * 比例 就的到相交的点了 这里代码就不写了
*/
public static GetCameraVisibleRange(camera: Camera): Vec3[] {
let vs = camera.camera.frustum.vertices;
// 右上
let rightUp = vs[0].clone();
// 左上
let liftUp = vs[1].clone();
let liftDown = vs[2].clone();
let rightDown = vs[3].clone();
// 原点
let oRightUo = vs[4].clone();
let oLiftUp = vs[5].clone();