版本: Unity 6 (6000.0)
语言英语
  • C#

Camera

UnityEngine 中的类

/

继承自:Behaviour

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们不能接受所有提交,但我们会阅读用户提出的每项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

描述

Camera 是玩家用来观察世界的设备。

屏幕空间点以像素定义。屏幕的左下角为 (0,0);右上角为 (pixelWidth,pixelHeight)。z 坐标是相对于 Camera 的世界单位。

视口空间点是归一化的,并且相对于 Camera。Camera 的左下角为 (0,0);右上角为 (1,1)。z 坐标是相对于 Camera 的世界单位。

世界空间点以全局坐标定义(例如,Transform.position)。

其他资源:camera component.

静态属性

allCameras返回场景中所有启用的 Camera。
allCamerasCount当前场景中的 Camera 数量。
current我们当前正在使用的 Camera,仅用于低级渲染控制(只读)。
kMaxAperture允许的最大光圈值。
kMaxBladeCount光圈光阑的最大叶片数。
kMinAperture允许的最小光圈值。
kMinBladeCount光圈光阑的最小叶片数。
main标记为 "MainCamera" 的第一个启用的 Camera 组件(只读)。
onPostRender委托,用于在 Camera 渲染场景后执行自定义代码。
onPreCull委托,用于在 Camera 剔除场景之前执行自定义代码。
onPreRender委托,用于在 Camera 渲染场景之前执行自定义代码。

属性

activeTexture获取此 Camera 的临时 RenderTexture 目标。
actualRenderingPath当前使用的渲染路径(只读)。
allowDynamicResolution动态分辨率缩放。
allowHDR高动态范围渲染。
allowMSAAMSAA 渲染。
anamorphism摄像机的变形。要使用此属性,请启用 UsePhysicalProperties。
aperture摄像机的光圈。要使用此属性,请启用 UsePhysicalProperties。
areVRStereoViewMatricesWithinSingleCullTolerance确定立体视图矩阵是否适合允许单次剔除。
aspect纵横比(宽度除以高度)。
backgroundColor用于清除屏幕的颜色。
barrelClipping摄像机的桶形裁剪。要使用此属性,请启用 UsePhysicalProperties。
bladeCount摄像机镜头中的叶片数量。要使用此属性,请启用 UsePhysicalProperties。
cameraToWorldMatrix从摄像机空间转换到世界空间的矩阵(只读)。
cameraType使用 CameraType 枚举标识此摄像机类型。
clearFlags摄像机如何清除背景。
clearStencilAfterLightingPass摄像机是否应该在延迟光照通道后清除模板缓冲区?
commandBufferCount在此摄像机上设置的命令缓冲区数量(只读)。
cullingMask用于选择性地渲染场景部分。
cullingMatrix设置摄像机用于所有剔除查询的自定义矩阵。
curvature叶片的曲率。要使用此属性,请启用 UsePhysicalProperties。
depth摄像机在摄像机渲染顺序中的深度。
depthTextureMode摄像机如何以及是否生成深度纹理。
eventMask用于选择哪些层可以在摄像机上触发事件的掩码。
farClipPlane远裁剪平面到摄像机的距离,以世界单位表示。
fieldOfView摄像机的垂直视场,以度为单位。
focalLength摄像机的焦距,以毫米为单位。要使用此属性,请启用 UsePhysicalProperties。
focusDistance镜头的对焦距离。要使用此属性,请启用 UsePhysicalProperties。
forceIntoRenderTexture摄像机渲染是否应该强制到 RenderTexture。
gateFit摄像机有两个网格:传感器网格和分辨率网格。物理摄像机传感器网格由 sensorSize 属性定义,分辨率网格由渲染目标区域定义。
iso摄像机的传感器灵敏度。要使用此属性,请启用 UsePhysicalProperties。
layerCullDistances每层的剔除距离。
layerCullSpherical如何为摄像机执行每层的剔除。
lensShift摄像机的镜头偏移。镜头偏移相对于传感器大小。例如,镜头偏移 0.5 将传感器偏移其水平尺寸的一半。
nearClipPlane近裁剪平面到摄像机的距离,以世界单位表示。
nonJitteredProjectionMatrix获取或设置原始投影矩阵,不包含摄像机偏移(无抖动)。
opaqueSortMode不透明对象的排序模式。
orthographic摄像机是正交的(true)还是透视的(false)?
orthographicSize摄像机在正交模式下的半尺寸。
overrideSceneCullingMask设置用于确定要绘制哪些场景中对象的剔除掩码。请参阅 EditorSceneManager.SetSceneCullingMask。
pixelHeight摄像机的高度(以像素为单位),不考虑动态分辨率缩放(只读)。
pixelRect摄像机在屏幕上的渲染位置,以像素坐标表示。
pixelWidth摄像机的宽度(以像素为单位),不考虑动态分辨率缩放(只读)。
previousViewProjectionMatrix获取上一帧使用的视图投影矩阵。
projectionMatrix设置自定义投影矩阵。
rect摄像机在屏幕上的渲染位置,以归一化坐标表示。
renderCloudsInSceneView如果为 false,则不会在此摄像机的场景视图中渲染云。
renderingPath应使用的渲染路径(如果可能)。
scaledPixelHeight摄像机的高度(以像素为单位),考虑动态分辨率缩放(只读)。
scaledPixelWidth摄像机的宽度(以像素为单位),考虑动态分辨率缩放(只读)。
scene如果非空,摄像机将只渲染指定场景的内容。
sensorSize摄像机传感器的尺寸,以毫米为单位。
shutterSpeed摄像机的曝光时间,以秒为单位。要使用此属性,请启用 UsePhysicalProperties。
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获取要在指定位置执行的命令缓冲区。此 API 仅适用于内置渲染器。
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将位置从屏幕空间转换为视口空间。
ScreenToWorldPoint将点从屏幕空间转换为世界空间,其中世界空间被定义为游戏层次结构顶部的坐标系。
SetReplacementShader使相机使用着色器替换进行渲染。
SetStereoProjectionMatrix为特定立体声眼睛设置自定义投影矩阵。
SetStereoViewMatrix为特定立体声眼睛设置自定义视图矩阵。
SetTargetBuffers设置相机以渲染到一个或多个 RenderTexture 的选定缓冲区。
SubmitRenderRequest提交渲染请求。
TryGetCullingParameters获取相机的剔除参数。
ViewportPointToRay返回从相机穿过视口点的一条射线。
ViewportToScreenPoint将位置从视口空间转换为屏幕空间。
ViewportToWorldPoint将位置从视口空间转换为世界空间。
WorldToScreenPoint将位置从世界空间转换为屏幕空间。
WorldToViewportPoint将位置从世界空间转换为视口空间。

静态方法

CalculateProjectionMatrixFromPhysicalProperties从焦距、传感器尺寸、镜头偏移、近平面距离、远平面距离和 Gate fit 参数计算投影矩阵。要计算不考虑 Gate fit 的投影矩阵,请使用 Camera.GateFitMode.None 。其他资源:GateFitParameters
FieldOfViewToFocalLength将视野转换为焦距。使用传感器高度和垂直视野或传感器宽度和水平视野。
FocalLengthToFieldOfView将焦距转换为视野。
GetAllCameras使用当前场景中的当前相机填充 Camera 数组,无需分配新的数组。
HorizontalToVerticalFieldOfView根据纵横比参数的值,将水平视野 (FOV) 转换为垂直 FOV。
VerticalToHorizontalFieldOfView根据纵横比参数的值,将垂直视野 (FOV) 转换为水平 FOV。

消息

OnPostRender相机渲染完场景后 Unity 调用的事件函数。
OnPreCull相机剔除场景之前 Unity 调用的事件函数。
OnPreRender相机渲染场景之前 Unity 调用的事件函数。
OnRenderImage相机完成渲染后 Unity 调用的事件函数,允许您修改相机的最终图像。
OnRenderObjectOnRenderObject 在相机渲染完场景后调用。
OnWillRenderObject如果对象可见,则对每个相机调用 OnWillRenderObject。

委托

CameraCallback相机回调的委托类型。

继承的成员

属性

enabled启用的行为被更新,禁用的行为不被更新。
isActiveAndEnabled报告 GameObject 及其关联的行为是否处于活动状态并已启用。
gameObject此组件所附加的 GameObject。组件始终附加到 GameObject。
tag此 GameObject 的标签。
transform附加到此 GameObject 的变换。
hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

BroadcastMessage在该 GameObject 或其任何子对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。
CompareTag将 GameObject 的标签与定义的标签进行比较。
GetComponent获取与指定组件相同的 GameObject 上类型为 T 的组件的引用。
GetComponentInChildren获取与指定组件相同的 GameObject 或其任何子对象上的类型为 T 的组件的引用。
GetComponentIndex获取组件在其父 GameObject 上的索引。
GetComponentInParent获取与指定组件相同的 GameObject 或其任何父对象上的类型为 T 的组件的引用。
GetComponents获取与指定组件相同的 GameObject 上类型为 T 的所有组件的引用。
GetComponentsInChildren获取与指定组件相同的 GameObject 及其任何子对象上的类型为 T 的所有组件的引用。
GetComponentsInParent获取与指定组件相同的 GameObject 及其任何父对象上的类型为 T 的所有组件的引用。
SendMessage在该 GameObject 中的每个 MonoBehaviour 上调用名为 methodName 的方法。
SendMessageUpwards在该 GameObject 中的每个 MonoBehaviour 以及该行为的每个祖先上调用名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy删除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议使用 Destroy 而不是该方法。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆对象。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关)的快照并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用以查看它们是否引用相同的对象。