前言
Camera实例对象的属性涵盖了从基本视图和投影设置到高级性能和渲染选项。每个属性都有其特定的用途和配置场景,允许开发者在Unity中精细地控制摄像机的行为。
Tips:找到你想看的属性点击即可跳转到相应的解释哦~
一、基本视图设置:
fieldOfView
: 定义了摄像机的视角宽度。
nearClipPlane
: 定义了摄像机视锥的近平面。
farClipPlane
: 定义了摄像机视锥的远平面。
aspect
: 表示摄像机视锥的宽高比,即视图宽度除以视图高度的比率。
orthographic
: 一个布尔值,用于切换摄像机的投影模式。
orthographicSize
: 定义了摄像机视图半高的大小。
二、渲染路径与技术:
actualRenderingPath
: 用于确定摄像机的实际渲染路径。
renderingPath
: 允许你选择摄像机应使用的渲染路径。
allowHDR
: 指定摄像机是否允许使用高动态范围 (HDR) 渲染。
allowMSAA
: 控制摄像机是否使用多重采样抗锯齿 (MSAA)。
depthTextureMode
: 用于控制摄像机是否应生成深度纹理或运动矢量纹理。
opaqueSortMode
: 定义了不透明物体的排序方式。
transparencySortMode
: 控制透明物体的排序方式。
三、性能优化:
allowDynamicResolution
: 允许摄像机动态调整其分辨率以提高性能或图像质量。
useOcclusionCulling
: 允许摄像机利用遮挡剔除来提高渲染效率,不渲染被其他物体完全遮挡的对象。
layerCullDistances
: 允许你为每个图层设置一个特定的剔除距离。
layerCullSpherical
: 用来决定剔除计算是基于球形体(true)还是基于相机平面的距离(false)
四、VR和立体视觉:
stereoEnabled
: 摄像机是否处于立体模式。
stereoSeparation
: 表示左右眼摄像机之间的距离,影响立体视觉的强度。
stereoConvergence
: 控制收敛点的位置,影响物体在3D空间中的感知深度。
areVRStereoViewMatricesWithinSingleCullTolerance
: 检查VR(虚拟现实)环境中左右眼视图矩阵是否足够接近。
五、输出和显示设置:
activeTexture
: 当前摄像机渲染到的活动纹理。
targetTexture
: 当前摄像机目标纹理。
pixelRect
: 定义了摄像机视口在屏幕上的位置和大小。
targetDisplay
: 用于指定摄像机的输出目标显示器。
rect
: 定义了摄像机视口的矩形区域。
cameraType
: 定义摄像机的类型。
forceIntoRenderTexture
: 是否应该总是将摄像机的输出渲染到一个纹理中。
六、高级属性与杂项:
worldToCameraMatrix
: 一个Matrix4x4,表示从世界坐标系到摄像机坐标系的转换。
projectionMatrix
: 一个Matrix4x4,用于定义摄像机的投影矩阵。
nonJitteredProjectionMatrix
: 提供了一个不包含抖动(jitter)效果的投影矩阵版本。
velocity
: 摄像机的移动速度和方向。
sensorSize
: 定义了摄像机传感器的大小。
usePhysicalProperties
: 启用物理属性。
overrideSceneCullingMask
: 设置自定义的剔除蒙版,这个蒙版决定了哪些层(Layer)的对象应该被渲染或忽略。
clearFlags
: 摄像机在开始渲染之前应该如何渲染颜色和深度缓冲区。
backgroundColor
: 摄像机屏幕背景颜色。
cullingMask
: 哪些层(Layer)被当前摄像机渲染。
eventMask
: 控制哪些层(Layer)上的事件可以被当前摄像机所注册。
clearStencilAfterLightingPass
: 一个布尔值,用于指定在光照阶段后是否清除模板缓冲区。
gateFit
: 当摄像机的纵横比与物理摄像头的纵横比不匹配时,如何调整图像以适应视口。
transparencySortAxis
: 定义透明对象的排序轴。
一、基本视图设置:
fieldOfView
定义:
fieldOfView 属性定义了摄像机的视角宽度,以度为单位。
用途:
这是摄像机视锥的垂直视角,影响场景的透视强度。
示例:
void Start() {
Camera camera = Camera.main;
camera.fieldOfView = 60.0f; // 设置视角宽度为60度
}
nearClipPlane 和 farClipPlane
定义:
这两个属性定义了摄像机视锥的近平面和远平面。
用途:
只有在这两个平面之间的物体才会被摄像机渲染。
示例:
void Start() {
Camera camera = Camera.main;
camera.nearClipPlane = 0.1f; // 最近裁剪面
camera.farClipPlane = 1000.0f; // 最远裁剪面
}
aspect
定义:
示摄像机视锥的宽高比,即视图宽度除以视图高度的比率。
用途:
这个比率影响摄像机视图的形状。
示例:
void Start() {
Camera camera = Camera.main;
camera.aspect = 16.0f / 9.0f; // 设置宽高比为16:9
}
orthographic
定义:
orthographic 是一个布尔值,用于切换摄像机的投影模式。
用途:
当设置为 true 时,摄像机将使用正交投影,这种投影不会使物体因距离远近而产生大小变化。
示例:
void Start() {
Camera camera = Camera.main;
camera.orthographic = true; // 开启正交投影
}
orthographicSize
定义:
当摄像机处于正交模式时,orthographicSize 属性定义了摄像机视图半高的大小。
用途:
这个值表示从摄像机的中心到视图顶部的距离。
示例:
void Start() {
Camera camera = Camera.main;
camera.orthographic = true; // 确保是正交模式
camera.orthographicSize = 5.0f; // 视图半高设置为5单位
}
二、渲染路径与技术:
actualRenderingPath
定义:
属性表示摄像机实际使用的渲染路径。
用途:
这个属性是只读的,它依赖于项目设置和摄像机的renderingPath设置。
- DeferredShading: 延迟渲染路径,允许更多的光照和影响效果。
- Forward: 正向渲染路径,适用于需要较多透明物体或特殊效果的场景。
- VertexLit: 顶点光照渲染路径,适用于性能有限的平台。
示例:
void Start() {
Camera camera = Camera.main;
Debug.Log("摄像机实际使用的渲染路径: " + camera.actualRenderingPath)