Camera

class in UnityEngine

/

继承自:Behaviour

切换到手册

描述

摄像机 (Camera) 是供玩家观看世界的设备。

屏幕空间的点以像素定义。屏幕的左下角为 (0,0),右上角 为 (pixelWidth,pixelHeight)。z 位置为与摄像机的距离,采用世界单位。

视口空间的点是标准化的、相对于摄像机的点。摄像机左下角为 (0,0),右上角为 (1,1)。z 位置为与摄像机的距离,采用世界单位。

在全球坐标中定义一个世界空间点(例如,Transform.position)。

另请参阅:camera component

静态变量

allCameras返回场景中所有已启用的摄像机。
allCamerasCount当前场景中的摄像机数。
current我们当前正在用于渲染的摄像机,仅用于低级别渲染控制。(只读)
main第一个启用的摄像机标记为“MainCamera”。(只读)
onPostRender任意摄像机完成渲染后触发的事件。
onPreCull任意摄像机开始剔除前触发的事件。
onPreRender任意摄像机开始渲染前触发的事件。

变量

activeTexture获取该摄像机的临时 RenderTexture 目标。
actualRenderingPath当前正在使用的渲染路径。(只读)
allowDynamicResolution动态分辨率缩放。
allowHDR高动态范围渲染。
allowMSAAMSAA 渲染。
areVRStereoViewMatricesWithinSingleCullTolerance确定该立体视图矩阵是否适合进行单通道剔除。
aspect宽高比(宽度除以高度)。
backgroundColor用于清除屏幕的颜色。
cameraToWorldMatrix摄像机空间到世界空间的变换矩阵。(只读)
cameraType确定摄像机的类型。
clearFlags摄像机清除背景的方式。
clearStencilAfterLightingPass完成延迟光照处理后,摄像机是否应清除模板缓冲区?
commandBufferCount该摄像机上设置的命令缓冲区数。(只读)
cullingMask用于选择性地渲染场景的某些部分。
cullingMatrix为摄像机设置一个自定义矩阵,以用于所有剔除查询。
depth摄像机在摄像机渲染顺序中的深度。
depthTextureMode摄像机是否以及如何生成深度纹理。
eventMask用于选择哪些层可以在摄像机上触发事件的遮罩。
farClipPlane远裁剪面距离。
fieldOfView摄像机的视野(以度为单位)。
focalLength摄像机焦距(以毫米表示)。要使用该属性,请启用 UsePhysicalProperties。
forceIntoRenderTexture是否强制让摄像机渲染在 RenderTexture 中进行。
gateFit摄像机有两个门:传感器门和分辨率门。物理摄像机传感器门由 sensorSize 属性定义,分辨率门由渲染目标区域定义。
layerCullDistances每层剔除距离。
layerCullSpherical如何为摄像机执行每层剔除。
lensShift摄像机的镜头偏移。镜头平移与传感器大小有关。例如,0.5 的镜头平移将使传感器偏移其水平尺寸的一半。
nearClipPlane近裁剪面距离。
nonJitteredProjectionMatrix获取或设置原始投影矩阵,无摄像机偏移(无抖动)。
opaqueSortMode不透明对象的排序模式。
orthographic此为正交摄像机 (true) 还是透视摄像机 (false)?
orthographicSize处于正交模式时,摄像机大小的一半。
pixelHeight摄像机的像素高度(不考虑动态分辨率缩放)。(只读)
pixelRect摄像机在屏幕上的渲染位置(像素坐标)。
pixelWidth摄像机的像素宽度(不考虑动态分辨率缩放)。(只读)
previousViewProjectionMatrix获取最后一帧使用的视图投影矩阵。
projectionMatrix设置自定义投影矩阵。
rect摄像机在屏幕上的渲染位置(标准化坐标)。
renderingPath应尽可能使用的渲染路径。
scaledPixelHeight摄像机的像素高度(考虑动态分辨率缩放)。(只读)
scaledPixelWidth摄像机的像素宽度(考虑动态分辨率缩放)。(只读)
scene如果不为 null,摄像机将仅渲染指定场景的内容。
sensorSize摄像机传感器的大小(以毫米表示)。
stereoActiveEye返回当前渲染的眼睛。 如果在未启用立体渲染时调用,将返回 Camera.MonoOrStereoscopicEye.Mono。\ 如果在摄像机渲染回调(例如 OnRenderImage)期间调用,将返回当前渲染的眼睛。\ 如果在渲染回调外调用并且启用了立体渲染,将返回默认眼睛,即 Camera.MonoOrStereoscopicEye.Left。
stereoConvergence到虚拟眼睛会聚点的距离。
stereoEnabled立体渲染。
stereoSeparation虚拟眼睛之间的距离。用于查询或设置当前两眼间隔。注意,大多数 VR 设备都提供该值,在这种情况下,设置该值将不起作用。
stereoTargetEye定义摄像机渲染到 VR 显示设备的哪个眼睛。
targetDisplay设置该摄像机的目标显示。
targetTexture目标渲染纹理。
transparencySortAxis描述方向的轴,将沿此方向测量对象距离,从而进行排序。
transparencySortMode透明对象排序模式。
useJitteredProjectionMatrixForTransparentRendering是否应该将抖动矩阵用于透明度渲染?
useOcclusionCulling渲染期间,摄像机是否使用遮挡剔除。
usePhysicalProperties启用 [UsePhysicalProperties],从而使用摄像机物理属性来计算视野和视锥体。
velocity获取摄像机的世界空间速度。(只读)
worldToCameraMatrix从世界空间变换为摄像机空间的矩阵。

公共函数

AddCommandBuffer添加要在指定位置执行的命令缓冲区。
AddCommandBufferAsync向 GPU 的异步计算队列添加命令缓冲区,并在图形处理到达给定点时执行该命令缓冲区。
CalculateFrustumCorners给定视口坐标,计算指向指定摄像机深度处视锥体四角的视图空间矢量。
CalculateObliqueMatrix计算并返回倾斜的近平面投影矩阵。
CopyFrom使该摄像机的设置与另一个摄像机相匹配。
CopyStereoDeviceProjectionMatrixToNonJittered设置源自 VR SDK 的非抖动投影矩阵。
GetCommandBuffers获取要在指定位置执行的命令缓冲区。
GetStereoNonJitteredProjectionMatrix获取特定左/右立体眼睛的非抖动投影矩阵。
GetStereoProjectionMatrix获取特定左/右立体眼睛的投影矩阵。
GetStereoViewMatrix获取特定立体眼睛的左/右视图矩阵。
RemoveAllCommandBuffers删除在该摄像机上设置的所有命令缓冲区。
RemoveCommandBuffer从指定位置的执行中删除一个命令缓冲区。
RemoveCommandBuffers从指定位置的执行中删除多个命令缓冲区。
Render手动渲染摄像机。
RenderToCubemap从该摄像机渲染到一个静态立方体贴图。
RenderWithShader使用替换的着色器渲染摄像机。
Reset将所有摄像机参数恢复为默认值。
ResetAspect将宽高比还原为屏幕宽高比。
ResetCullingMatrix使剔除查询反映摄像机的内置参数。
ResetProjectionMatrix使投影反映普通摄像机的参数。
ResetReplacementShader从摄像机中删除着色器替换。
ResetStereoProjectionMatrices重置摄像机,为所有立体眼睛使用 Unity 计算的投影矩阵。
ResetStereoViewMatrices重置摄像机,为所有立体眼睛使用 Unity 计算的视图矩阵。
ResetTransparencySortSettings将该摄像机的透明度排序设置重置为默认值。默认透明度设置取自 GraphicsSettings,而不是直接来自该摄像机。
ResetWorldToCameraMatrix使渲染位置反映摄像机在场景中的位置。
ScreenPointToRay返回从摄像机通过屏幕点的光线。
ScreenToViewportPoint将 position 从屏幕空间变换为视口空间。
ScreenToWorldPoint将 position 从屏幕空间变换为世界空间。
SetReplacementShader让摄像机使用着色器替换进行渲染。
SetStereoProjectionMatrix为特定立体眼睛设置自定义投影矩阵。
SetStereoViewMatrix为特定立体眼睛设置自定义视图矩阵。
SetTargetBuffers将摄像机设置为渲染到一个或多个 RenderTexture 的选定缓冲区。
ViewportPointToRay返回从摄像机通过视口点的光线。
ViewportToScreenPoint将 position 从视口空间变换为屏幕空间。
ViewportToWorldPoint将 position 从视口空间变换为世界空间。
WorldToScreenPoint将 position 从世界空间变换为屏幕空间。
WorldToViewportPoint将 position 从世界空间变换为视口空间。

静态函数

CalculateProjectionMatrixFromPhysicalProperties 根据焦距、传感器大小、镜头平移、近平面距离、远平面距离和门适应 (Gate fit) 参数来计算投影矩阵。 若要计算投影矩阵而不考虑门适应,请使用 Camera.GateFitMode.None 。另请参阅:GateFitParameters
GetAllCameras使用场景中的当前摄像机填充摄像机数组,无需分配新数组。

消息

OnPostRender在摄像机完成场景渲染后,调用 OnPostRender。
OnPreCull在摄像机剔除场景前,将调用 OnPreCull。
OnPreRender在摄像机开始渲染场景前,将调用 OnPreRender。
OnRenderImageOnRenderImage 在图像的所有渲染操作全部完成后调用。
OnRenderObject在摄像机渲染场景后,将调用 OnRenderObject。
OnWillRenderObject如果对象可见,则为每个摄像机调用 OnWillRenderObject。

委托

CameraCallback摄像机回调的委托类型。

继承的成员

变量

enabled启用的 Behaviour 可更新,禁用的 Behaviour 不可更新。
isActiveAndEnabled是否已激活并启用 Behaviour?
gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag此游戏对象是否使用 tag 进行了标记?
GetComponent如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。
GetComponentInChildren使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildren返回 GameObject 或其任何子项中类型为 type 的所有组件。
GetComponentsInParent返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
GetInstanceID返回对象的实例 ID。
ToString返回 GameObject 的名称。

静态函数

Destroy删除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfType返回所有类型为 type 的已加载的激活对象的列表。
Instantiate克隆 original 对象并返回克隆对象。

运算符

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。