Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
来源:互联网 发布:数据库的api接口 编辑:程序博客网 时间:2024/04/30 10:48
在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°全景照片
- 信息安全简介
- 修改jetty 服务器图标
- Android开发之数据保存技术(一)
- 【GIT】GIT 常用命令
- PHP实现微信网页登陆授权开发
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
- 堆和栈的区别
- IOS开发过程中,零散知识点小记
- Meta http-equiv属性
- 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService
- Dubbo项目开发及部署的简单示例
- 华为服务器 远程虚拟控制 如何连接
- Active learning 总结
- PHP类的构造方法和析构方法