Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
来源:互联网 发布:天眼通软件 编辑:程序博客网 时间:2024/04/30 12:45
在Unity Editor下,当选择Camera组件后,可呈现出Camera视口区域锥体,非常方便。但是当选择其他物体,如Cube后,就无法得知是否在Camera市口区内了,这里我找到了雨松MOMO的一篇博客《Unity3D研究院之获取摄像机的视口区域》,他用Camera.fieldOfView和Camera.aspect算出屏幕比例,然后再得出width、height(摄像机)绘制了四边形,非常酷,可以解决这个痛点。
我在巨人肩膀上,做了一些拓展:
自动获得Camera的farClipPlane和nearClipPlane
void Start()
{
if (!theCamera)
{
theCamera = this.GetComponent<Camera>();
}
upperDistance = theCamera.farClipPlane;
lowerDistance = theCamera.nearClipPlane;
tx = theCamera.transform;
}
连线far和near ClipPlane
void FindLower2UpperCorners()
{
Vector3[] corners_upper = GetCorners(upperDistance);
Vector3[] corners_lower = GetCorners(lowerDistance);Debug.DrawLine(corners_lower[0], corners_upper[0], Color.blue);
Debug.DrawLine(corners_lower[1], corners_upper[1], Color.blue);
Debug.DrawLine(corners_lower[2], corners_upper[2], Color.blue);
Debug.DrawLine(corners_lower[3], corners_upper[3], Color.blue);
}
挂接这个CameraViewEx.cs脚本到Camera组件同GameObject即可, 运行时有效:
源码下载地址:http://git.oschina.net/xifarm/VR_Mojing/
备注:
不用这个脚本,直接在Game视图,打开Gizmos也可以看到Unity自带的Camera视口区域锥体。
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
- Unity3D研究院之获取摄像机的视口区域
- Unity3D研究院之获取摄像机的视口区域
- (转载)Unity3D研究院之获取摄像机的视口区域
- Unity3D -- 图形 -- 视锥体
- Unity获取摄像机的视口区域
- Unity 获取摄像机的视口区域
- Unity3D for VR 学习(5): VR Gaze Input
- Unity3D技术之相机使用技巧-从相机到给定距离的视锥体大小
- Unity3D for VR 学习(1): 又一个新玩具 暴风魔镜 4(Android)
- Unity3D for VR 学习(1): 又一个新玩具 暴风魔镜 4(Android)
- Unity3D for VR 学习(10): Unity LOD Group 组件
- Unity3D for VR 学习(8): Unity Shader概述
- Unity3D for VR 学习(2): 暴风魔镜框架探索
- Unity3D for VR 学习(6): 再次温故知新-3D数学
- Unity3D for VR 学习(7): 360°全景照片
- 转载一个关于python web fraemwork 的理解
- swiper3.4 IE8兼容性问题
- S2 1本2章 课后题
- HTML5 学习笔记6-改良的input元素
- Eclipse不自动编译java文件的终极解决方法
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
- Android 水瓶动画,贝塞尔Loading
- Android使用include无法调整位置的解决方法
- gcc中的-w -W和-Wall选项
- ArcGIS Engine之地图的打开与保存
- JAVA 序列化与文件的输入/输出
- jvm字节码指令理解
- 移动端下拉刷新
- BlocksKit (一)