【Unity】入门学习笔记180516——API(2)Camera类实例属性

二、Camera类——A、实例属性

Camera类用来控制游戏虚拟场景的展示,以左下角为屏幕的(0,0)坐标,以右上角为屏幕的(camera.pixelWidth,camera.pixelHeight)点坐标。

主要包含常用的类实例属性和实例方法:


A、实例属性:

1、aspect

public float aspect {get;set;}

设置Camera视口的宽高比,即宽度/高度

camera.ResetAspect( );    //自带的重置摄像机aspect方法?

camera.aspect=2.0f;


扫描二维码关注公众号,回复: 910816 查看本文章

2、cameraToWorldMatrix

public Matrix4x4 cameraToWorldMatrix{ get; }

返回从摄像机的局部坐标系到世界坐标系的变换矩阵

Matrix4x4 m=camera.cameraToWorldMatrix;

Vector3 v3=m.MultiplyPoint(Vector3.forward*5.0f);

结合Matrix4x4类种的MultiplyPoint方法对摄像机进行移动


3、cullingMask

public int cullingMask{ get; set; }

按层有选择性地渲染场景中的物体

=-1:渲染场景中任何层物体

=0:不渲染场景中任何层

=(1<<2)(1<<3)(1<<4):只渲染分别位于2、3、4层的物体


4、eventMask

public int eventMask { get; set; }

选择那个层的物体可以响应鼠标事件,但需要满足两个条件:

①物体在摄像机的视野范围内

②2的layer次方的值与eventMask进行与运算(&)后结果为仍为2的layer次方的值


5、layerCullDistanes

public float[] layerCullDistances {get; set; }

摄像机基于层的消隐距离,必须小于或等于摄像机的farClipPlane才有效

就是摄像机移动过程中,达到某个距离后,该层的物体就会消失


6、layerCullSpherical

public bool layerCullSpherical {get; set; }

基于球面距离剔除,true Or false


7、orthographic

public bool orthographic{get; set; }

获取和设置当前摄像机的投影模式,true为正交投影;false为透视投影

关于这两种投影的区别:

正交投影:物体在视口中的大小只与正交视口的大小有关,于摄像机到物体的距离无关,主要用来呈现2D效果

透视投影:物体大小与摄像机视口夹角以及摄像机与物体的距离都有关系,有远小近大的效果,用来3D呈现


8、pixelRect

public Rect pixelRect {get; set; }

设置摄像机被渲染到屏幕中的坐标位置

pixelRect属性:实际像素大小设置显示视口的位置

rect属性:单位化方式显示视口的位置

camera.pixelRect=(x0,y0,w,h)    //x0视口右移像素,y0视口上移像素,w,h对应camera.pixelWidth / Height


9、projectionMatrix

public Matrix4x4 projetionMatrix {get; set; }

设置摄像机的自定义投影矩阵

在切换变换矩阵时通常需要先用camera.ResetProjectionMatrix( )重置camera的变换矩阵


10、rect

public Rect rect{get; set; }

使用单位化坐标系的方式来设置摄像机视图的位置和大小

camera.rect=(x0,y0,w0,h0)

x0,y0:A物体 向右 / 向上 移动了A的总宽度倍数,有效范围 [-1,1]

w0,h0:放缩比例,相等时为等比例放缩 [0,1]


11、renderingPath

public RenderingPath renderingPath {get; set; }

获取和设置摄像机的渲染路径,为枚举类型,共有4种设置方式:

UsePlayerSettings:工程种设置,即Edit>ProjectSettings>Player种各个平台下的设置

VertexLit:使用顶点光照,最低消耗的渲染路径,不支持阴影,适用于移动及老式设备

Forward:使用正向光照,基于着色器的渲染路径,支持逐像素计算光照和来自一个平行光的实时阴影

DeferredLighting:使用延迟光照,支持实时阴影,计算消耗达,硬件要求高,不支持移动设备,仅专业版可用


12、targetTeture

public RenderTexture targetTexture{get; set; }

调用此属性可生成目标渲染纹理,仅专业版可用。把视图作为Renderer Texture,添加一个Material付给对象的Renderer组件,实时地看到摄像机的视图,用来做实时跟踪类的功能


13、worldToCameraMatrix

Public Matrix4x4 worldToCameraMatrix{get; set; }

返回或设置从世界坐标系到当前摄像机自身坐标系的变换矩阵



猜你喜欢

转载自blog.csdn.net/Dylan_Day/article/details/80317649
今日推荐