1、重要的静态成员
(1)获取摄像机
// 主摄像机的获取(场景中一定要有摄像机的tag是MainCamera,若有两个随意获取其中一个,但一般不会有两个)--->Camera.main.****
Camera.main.name
// 获取摄像机的数量
Camera.allCameraCount
// 得到所有摄像机
Camera[] allCamera = Camera.allCameras;
(2)渲染相关委托(c为Camera类型的参数)
// 摄像机剔除前(Occlusion Culling)处理的委托函数
Camera.onPreCull += (c) => {};
// 摄像机渲染前处理的委托
Camera.onPreRender += (c) => {};
// 摄像机渲染后处理的委托
Camera.onPostRender += (c) =>{};
2、重要的成员
(1)Inpector界面上的参数,都可以在Camera中获取到
// 比如下面这句代码就是得到主摄像机对象上的深度进行设置
Camera.main.depth
(2)世界坐标转屏幕坐标
// 转换过后,x和y对应的就是屏幕坐标,z对应的是这个3D物体离摄像机有多远
// 实际应用:头顶血条相关的功能
Vector3 v = Camera.main.WordToScreenPoint(this.transform.position);
(3)屏幕坐标转世界坐标
要改变z轴,否则z默认为0,转换过去的世界坐标系的点永远都是一个点,可以理解为视口相交的焦点,如果改变了z,那么转换过去的世界坐标系的点就是相对于摄像机前方多少个单位的横截面上的世界坐标点
Camera.main.ScreenToWorldPoint(Input.mousePosition)
eg:Vector3 v = Input.mousePostion; v.z = 10; obj.position = Camera.main.ScreenToWorldPoint(v)
那么可以发现obj物体会在离摄像机10个单位的横截面上随鼠标移动