码迷,mamicode.com
首页 > 编程语言 > 详细

《Unity_API解析》 第二章(上) Camera类实例属性

时间:2016-02-19 00:30:29      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

aspect属性:设置摄像机视口比例

public float aspect{ get ; set; }
功能说明:此属性用于获取或设置Camera视口的宽高比例值。
 
cameraToWorldMatrix属性:变换矩阵
public Matrix4x4 cameraToWorldMatrix{ get; }
功能说明:此属性的功能是返回从摄像机的局部坐标系到世界坐标系的变化矩阵。
Camera中的forward方向为其自身坐标系的-z轴方向,一般其他对象的forward方向为自身坐标系的z轴方向。
通过这个属性,可以获得一个4x4矩阵,当相机坐标,或角度发生变化时,矩阵的值也发生变化。
 
cullingMask属性:摄像机按层渲染
public int cullingMask{ get; set; }
功能说明:此属性用于按层有选择性的渲染场景中的物体。通过cullingMask可以使得当前摄像机有选择性地渲染场景总的部分物体,默认cullingMask=-1即渲染场景中任意层物体,当cullingMask=0时不渲染场景中任何层。若只渲染分别位于2、3、4层的物体,则可以使用代码culling1Mask=(1<<2) + (1<<3)+(1<<4)来实现
 
eventMask属性:按层响应事件
public int eventMask{ get; set; }
功能说明 此属性的功能是选择哪个层的物体可以响应鼠标事件
如果要使物体响应鼠标事件必须满足:
1.物体在摄像机的视野范围内。
2.在2的layer次方的值与eventMask进行&运算后结果认为2的layer次方的值。
如果想要多个不同层的物体都响应鼠标事件,则需要把所有层的2的layer次方值想家,在于eventMask做&运算。
当物体的layer选择IgnoreRaycast时(系统内置,值为2)时,无论eventMask值为多少,物体都无法响应鼠标事件。这个层忽略摄像碰撞。
此属性的计算特别消耗资源。
 
layerCullDistances属性:层消隐距离
public float[] layerCullDistances{ get; set; }
功能说明 此属性用来设置摄像机基于层的消隐距离。摄像机可以通过基于层的方式来设置不同层物体的消隐距离,但这个层必须小于摄像机的farClipPlane(远裁剪面距离)才有效。
技术分享
代码结果,当cube所有面的距离都大于层消隐距离后,cube消失。
 
layerCullSpherical属性:基于球面距离剔除
public bool layerCullSpherical{ get; set; }
功能说明 此属性用于设置摄像机在基于层剔除物体时,是否采用基于球面距离的剔除方式,此属性默认值为false,此时,只要物体表面有一点没有超出物体所在层的远视口平面,物体可见。当为true,只要物体的世界坐标与摄像机的距离大于所在层剔除距离,物体不可见。
 
orthographic属性:摄像机投影模式
public bool orthographic{ get; set; }
功能说明 此属性用于获取或设置当前摄像机的投影模式,投影模式包括正交投影模式和头饰投影模式。若值为true则为正交投影。正交投影下,物体在视口中的大小只与正交视口的大小有关,与摄像机到物体的距离无关,主要用于呈现2D效果。而在透视投影模式下,物体在视口中的大小与摄像机的视口夹角以及摄像机与物体的距离都有关系,有远小近大的效果,主要用来呈现3D效果。
 
pixelRect属性:摄像机渲染区间
public Rect pixelRect{ get; set; }
功能说明 此属性用于设置camera被渲染到屏幕中的坐标位置。pixelRect与属性rect功能类似,不同的是pixelRect以实际像素大小来设置现实视口的位置,而rect以单位化方式设置显示视口的位置。
技术分享
技术分享
技术分享
 
可以看到摄像机渲染位置变了。
 
projectionMatrix属性:自定义投影矩阵
public Matrix4x4 projectionMatrix{ get; set;}
功能说明 此属性的功能是设置摄像机的自定义投影矩阵。此属性常在一些特效场景下用到,在切换变换矩阵时通常需要先用camera.ResetProjectionMatrix()充值camera的变换矩阵。
 
rect属性:摄像机视图的位置和大小
public Rect rect{ get; set; }
功能说明 此属性使用单位化坐标系的方式来设置当前摄像机的视图位置和大小。
 
renderingPath属性:渲染路径
public RenderingPath renderingPath{ get; set}
功能说明 此属性用于获取或设置摄像机的渲染路径。Unity中渲染路径RenderingPath为枚举类型,共有以下4种设置方式
UsePlayerSetting:使用功能中的设置,即Edit - ProjectSettings - Player中各个平台下的设置。
Vetexlit:使用顶点光照,最低消耗的渲染路径,不支持实时阴影,适用于移动及老式设备。
Forward:使用正向光照,基于着色器的渲染路径,支持逐像素计算光照和来自一个平行光的实时阴影。
DeferredLighting:使用延时光照,支持实时阴影,计算消耗大,对硬件要求高,不支持移动设备,仅专业版可用。
 
targetTexture属性:目标渲染纹理
public RenderTexture targetTexture{ get; set; }
功能说明 调用Camera此属性可以生成目标渲染纹理,仅专业版可用。此属性的作用是可以把某个摄像机的视图作为Renderer Texture,然后添加到一个Material对象形成一个新的material,再把这个material赋给一个GameObject对象的Renderer组件,便可以在这个GameObject中实时的看到摄像机中的视图,此属性可以用来一些实时跟踪类功能。
 
worldToCameraMatrix属性:变换矩阵
public Matrix4x4 worldToCameraMatrix{ get; set; }
此属性的功能是返回或设置从世界坐标系到当前Camera自身坐标系的变换矩阵,当用camera.worldToCameraMatrix重设摄像机的转换矩阵时,摄像机对应的Transform组件数据不会同步更新,如果想回到Transform的可控状态,需要调用ResetWorldToCameraMatrix方法充值摄像机的转换矩阵。
 

《Unity_API解析》 第二章(上) Camera类实例属性

标签:

原文地址:http://www.cnblogs.com/colve/p/5199639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!