Version: 2020.3

Camera

class in UnityEngine

/

继承自:Behaviour

切换到手册

描述

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

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

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

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

请注意,类不得直接继承自摄像机。如果需要继承自摄像机,请参阅 ScriptableCamera。

另请参阅:camera component

静态变量

allCameras返回场景中所有已启用的摄像机。
allCamerasCount当前场景中的摄像机数。
current我们当前正在用于渲染的摄像机,仅用于低级别渲染控制。(只读)
mainThe first enabled Camera component that is tagged "MainCamera" (Read Only).
onPostRenderDelegate that you can use to execute custom code after a Camera renders the scene.
onPreCullDelegate that you can use to execute custom code before a Camera culls the scene.
onPreRenderDelegate that you can use to execute custom code before a Camera renders the scene.

变量

activeTexture获取该摄像机的临时 RenderTexture 目标。
actualRenderingPath当前正在使用的渲染路径。(只读)
allowDynamicResolution动态分辨率缩放。
allowHDR高动态范围渲染。
allowMSAAMSAA 渲染。
areVRStereoViewMatricesWithinSingleCullTolerance确定该立体视图矩阵是否适合进行单通道剔除。
aspect宽高比(宽度除以高度)。
backgroundColor用于清除屏幕的颜色。
cameraToWorldMatrix摄像机空间到世界空间的变换矩阵。(只读)
cameraTypeIdentifies what kind of camera this is, using the CameraType enum.
clearFlags摄像机清除背景的方式。
clearStencilAfterLightingPass完成延迟光照处理后,摄像机是否应清除模板缓冲区?
commandBufferCount该摄像机上设置的命令缓冲区数。(只读)
cullingMask用于选择性地渲染场景的某些部分。
cullingMatrix为摄像机设置一个自定义矩阵,以用于所有剔除查询。
depth摄像机在摄像机渲染顺序中的深度。
depthTextureMode摄像机是否以及如何生成深度纹理。
eventMask用于选择哪些层可以在摄像机上触发事件的遮罩。
farClipPlaneThe distance of the far clipping plane from the Camera, in world units.
fieldOfView摄像机的视野(以度为单位)。
focalLength摄像机焦距(以毫米表示)。要使用该属性,请启用 UsePhysicalProperties。
forceIntoRenderTexture是否强制让摄像机渲染在 RenderTexture 中进行。
gateFit摄像机有两个门:传感器门和分辨率门。物理摄像机传感器门由 sensorSize 属性定义,分辨率门由渲染目标区域定义。
layerCullDistances每层剔除距离。
layerCullSpherical如何为摄像机执行每层剔除。
lensShift摄像机的镜头偏移。镜头平移与传感器大小有关。例如,0.5 的镜头平移将使传感器偏移其水平尺寸的一半。
nearClipPlaneThe distance of the near clipping plane from the the Camera, in world units.
nonJitteredProjectionMatrix获取或设置原始投影矩阵,无摄像机偏移(无抖动)。
opaqueSortMode不透明对象的排序模式。
orthographic此为正交摄像机 (true) 还是透视摄像机 (false)?
orthographicSize处于正交模式时,摄像机大小的一半。
overrideSceneCullingMask设置剔除遮罩,用于确定要绘制哪些场景中的哪些对象。 请参阅 EditorSceneManager.SetSceneCullingMask。
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获取要在指定位置执行的命令缓冲区。
GetGateFittedFieldOfView 获取摄像机的有效垂直视野,包括 GateFit。 适应传感器门和分辨率门会影响最终视野。如果传感器门的宽高比与分辨率门的宽高比相同或摄像机未处于物理模式,则此方法返回的值与 fieldofview 属性返回的值相同。
GetGateFittedLensShift 获取摄像机的有效镜头偏移,包括 GateFit。 适应传感器门和分辨率门会影响最终的投影倾斜度。如果传感器门的宽高比与分辨率门的宽高比相同,则此方法返回的值与 lenshift 属性返回的值相同。如果摄像机未处于物理模式,则此方法返回 Vector2.zero。
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将点从屏幕空间变换为世界空间。其中,世界空间定义为位于游戏层级视图最顶层的坐标系统。
SetReplacementShader让摄像机使用着色器替换进行渲染。
SetStereoProjectionMatrix为特定立体眼睛设置自定义投影矩阵。
SetStereoViewMatrix为特定立体眼睛设置自定义视图矩阵。
SetTargetBuffers将摄像机设置为渲染到一个或多个 RenderTexture 的选定缓冲区。
SubmitRenderRequestsSubmit a number of Camera.RenderRequests.
TryGetCullingParameters获取摄像机的剔除参数。
ViewportPointToRay返回从摄像机通过视口点的光线。
ViewportToScreenPoint将 position 从视口空间变换为屏幕空间。
ViewportToWorldPoint将 position 从视口空间变换为世界空间。
WorldToScreenPoint将 position 从世界空间变换为屏幕空间。
WorldToViewportPoint将 position 从世界空间变换为视口空间。

静态函数

CalculateProjectionMatrixFromPhysicalProperties 根据焦距、传感器大小、镜头平移、近平面距离、远平面距离和门适应 (Gate fit) 参数来计算投影矩阵。 若要计算投影矩阵而不考虑门适应,请使用 Camera.GateFitMode.None 。另请参阅:GateFitParameters
FieldOfViewToFocalLength将视野换算为焦距。使用传感器高度和垂直视野或传感器宽度和水平视野。
FocalLengthToFieldOfView将焦距换算为视野。
GetAllCameras使用场景中的当前摄像机填充摄像机数组,无需分配新数组。
HorizontalToVerticalFieldOfView根据宽高比参数的值将水平视野 (FOV) 转换为垂直 FOV。
VerticalToHorizontalFieldOfView根据宽高比参数的值将垂直视野 (FOV) 转换为水平 FOV。

消息

OnPostRender Event function that Unity calls after a Camera renders the scene.
OnPreCull Event function that Unity calls before a Camera culls the scene.
OnPreRender Event function that Unity calls before a Camera renders the scene.
OnRenderImage Event function that Unity calls after a Camera has finished rendering, that allows you to modify the Camera's final image.
OnRenderObject在摄像机渲染场景后,将调用 OnRenderObject。
OnWillRenderObject如果对象可见,则为每个摄像机调用 OnWillRenderObject。

委托

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

继承的成员

变量

enabled启用的 Behaviour 可更新,禁用的 Behaviour 不可更新。
isActiveAndEnabled是否已激活并启用 Behaviour?
gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。

公共函数

BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag此游戏对象是否使用 tag 进行了标记?
GetComponentReturns the component of Type type if the GameObject has one attached, null if it doesn't. Will also return disabled components.
GetComponentInChildren使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildrenReturns all components of Type type in the GameObject or any of its children. Works recursively.
GetComponentsInParent返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。