Class UniversalAdditionalCameraData
Class containing various additional camera data used by URP.
Inherited Members
Namespace: UnityEngine.Rendering.Universal
Assembly: Unity.RenderPipelines.Universal.Runtime.dll
Syntax
[DisallowMultipleComponent]
[RequireComponent(typeof(Camera))]
[ExecuteAlways]
public class UniversalAdditionalCameraData : MonoBehaviour, ISerializationCallbackReceiver, IAdditionalData
Remarks
The Universal Render Pipeline (URP) adds this class to every camera. It contains URP-specific data and methods that the render pipeline uses.
Examples
This sample code shows how settings can be retrieved and logged in runtime.
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class LogCameraInformation : MonoBehaviour
{
// Reference to the camera component
[SerializeField] private Camera cameraToInspect;
// Start is called once before the first execution of Update after the MonoBehaviour is created
private void Start()
{
// Make sure there's a reference to the camera. If not, log an error and return.
if (cameraToInspect == null)
{
Debug.LogError("LogCameraInformation.Start(): cameraToInspect has not been assigned.");
return;
}
// Get the UniversalAdditionalCameraData component from the camera
UniversalAdditionalCameraData additionalCameraData = cameraToInspect.GetUniversalAdditionalCameraData();
// Print to the console some of the settings contained in the UniversalAdditionalCameraData component.
PrintCameraInformation(ref additionalCameraData);
}
// Print to the console some of the available settings in the UniversalAdditionalCameraData component.
private static void PrintCameraInformation(ref UniversalAdditionalCameraData cameraData)
{
string cameraInformation = $"Camera \"{cameraData.name}\" information:\n" +
$"- renderShadows: {cameraData.renderShadows}\n" +
$"- requiresDepthOption: {cameraData.requiresDepthOption}\n" +
$"- requiresColorOption: {cameraData.requiresColorOption}\n" +
$"- renderType: {cameraData.renderType}\n" +
$"- cameraStack.Count: {cameraData.cameraStack.Count}\n" +
$"- clearDepth: {cameraData.clearDepth}\n" +
$"- requiresDepthTexture: {cameraData.requiresDepthTexture}\n" +
$"- requiresColorTexture: {cameraData.requiresColorTexture}\n" +
$"- volumeLayerMask: {cameraData.volumeLayerMask}\n" +
$"- requiresVolumeFrameworkUpdate: {cameraData.requiresVolumeFrameworkUpdate}\n" +
$"- renderPostProcessing: {cameraData.renderPostProcessing}\n" +
$"- antialiasing: {cameraData.antialiasing}\n" +
$"- antialiasingQuality: {cameraData.antialiasingQuality}\n" +
$"- taaSettings:\n" +
$" - quality: {cameraData.taaSettings.quality}\n" +
$" - baseBlendFactor: {cameraData.taaSettings.baseBlendFactor}\n" +
$" - jitterScale: {cameraData.taaSettings.jitterScale}\n" +
$" - mipBias: {cameraData.taaSettings.mipBias}\n" +
$" - varianceClampScale: {cameraData.taaSettings.varianceClampScale}\n" +
$" - contrastAdaptiveSharpening: {cameraData.taaSettings.contrastAdaptiveSharpening}\n" +
$"- resetHistory: {cameraData.resetHistory}\n" +
$"- stopNaN: {cameraData.stopNaN}\n" +
$"- dithering: {cameraData.dithering}\n" +
$"- allowXRRendering: {cameraData.allowXRRendering}\n" +
$"- useScreenCoordOverride: {cameraData.useScreenCoordOverride}\n" +
$"- screenCoordScaleBias: {cameraData.screenCoordScaleBias}\n" +
$"- allowHDROutput: {cameraData.allowHDROutput}\n";
Debug.Log(cameraInformation);
}
}
Properties
allowHDROutput
Returns true if this camera allows outputting to HDR displays.
Declaration
public bool allowHDROutput { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
allowXRRendering
Returns true if this camera allows render in XR.
Declaration
public bool allowXRRendering { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
antialiasing
Returns the current anti-aliasing mode used by this camera. AntialiasingMode.
Declaration
public AntialiasingMode antialiasing { get; set; }
Property Value
| Type | Description |
|---|---|
| AntialiasingMode |
antialiasingQuality
Returns the current anti-aliasing quality used by this camera. antialiasingQuality.
Declaration
public AntialiasingQuality antialiasingQuality { get; set; }
Property Value
| Type | Description |
|---|---|
| AntialiasingQuality |
cameraStack
Returns the stacked Overlay cameras. Only Base cameras can have such a stack, it will return null otherwise. CameraRenderType.
Declaration
public List<Camera> cameraStack { get; }
Property Value
| Type | Description |
|---|---|
| List<Camera> |
clearDepth
If true, this camera will clear depth value before rendering. Only valid for Overlay cameras.
Declaration
public bool clearDepth { get; }
Property Value
| Type | Description |
|---|---|
| bool |
dithering
Returns true if this camera applies 8-bit dithering to the final render to reduce color banding
Declaration
public bool dithering { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
history
Returns the URP camera history texture read access. Used to register requests and to read the existing history textures by external systems.
Declaration
public ICameraHistoryReadAccess history { get; }
Property Value
| Type | Description |
|---|---|
| ICameraHistoryReadAccess |
renderPostProcessing
Returns true if this camera should render post-processing.
Declaration
public bool renderPostProcessing { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
renderShadows
Controls if this camera should render shadows.
Declaration
public bool renderShadows { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
renderType
Returns the camera renderType. CameraRenderType.
Declaration
public CameraRenderType renderType { get; set; }
Property Value
| Type | Description |
|---|---|
| CameraRenderType |
requiresColorOption
Controls if a camera should copy the color contents of a camera after rendering opaques. The color texture is available to be bound in shaders as _CameraOpaqueTexture.
Declaration
public CameraOverrideOption requiresColorOption { get; set; }
Property Value
| Type | Description |
|---|---|
| CameraOverrideOption |
requiresColorTexture
Returns true if this camera requires to color information in a texture. If enabled, color texture is available to be bound and read from shaders as _CameraOpaqueTexture after rendering skybox.
Declaration
public bool requiresColorTexture { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
requiresDepthOption
Controls if a camera should render depth. The depth is available to be bound in shaders as _CameraDepthTexture. CameraOverrideOption
Declaration
public CameraOverrideOption requiresDepthOption { get; set; }
Property Value
| Type | Description |
|---|---|
| CameraOverrideOption |
requiresDepthTexture
Returns true if this camera needs to render depth information in a texture. If enabled, depth texture is available to be bound and read from shaders as _CameraDepthTexture after rendering skybox.
Declaration
public bool requiresDepthTexture { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
requiresVolumeFrameworkUpdate
Returns true if this camera requires the volume framework to be updated every frame.
Declaration
public bool requiresVolumeFrameworkUpdate { get; }
Property Value
| Type | Description |
|---|---|
| bool |
resetHistory
Reset post-process history for Temporal Anti-aliasing (TAA).
Declaration
public bool resetHistory { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
screenCoordScaleBias
Transform applied to screen coordinates when Screen Coordinates Override is active.
Declaration
public Vector4 screenCoordScaleBias { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector4 |
screenSizeOverride
Screen size used when Screen Coordinates Override is active.
Declaration
public Vector4 screenSizeOverride { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector4 |
scriptableRenderer
Returns the ScriptableRenderer that is used to render this camera.
Declaration
public ScriptableRenderer scriptableRenderer { get; }
Property Value
| Type | Description |
|---|---|
| ScriptableRenderer |
stopNaN
Returns true if this camera should automatically replace NaN/Inf in shaders by a black pixel to avoid breaking some effects.
Declaration
public bool stopNaN { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
taaSettings
Returns the current temporal anti-aliasing settings used by this camera.
Declaration
public ref TemporalAA.Settings taaSettings { get; }
Property Value
| Type | Description |
|---|---|
| TemporalAA.Settings |
useScreenCoordOverride
Returns true if the camera uses Screen Coordinates Override.
Declaration
public bool useScreenCoordOverride { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
volumeLayerMask
Returns the selected scene-layers affecting this camera.
Declaration
public LayerMask volumeLayerMask { get; set; }
Property Value
| Type | Description |
|---|---|
| LayerMask |
volumeStack
Returns the current volume stack used by this camera.
Declaration
public VolumeStack volumeStack { get; set; }
Property Value
| Type | Description |
|---|---|
| VolumeStack |
volumeTrigger
Returns the Transform that acts as a trigger for Volume blending.
Declaration
public Transform volumeTrigger { get; set; }
Property Value
| Type | Description |
|---|---|
| Transform |
Methods
OnDestroy()
Declaration
public void OnDestroy()
OnDrawGizmos()
Declaration
public void OnDrawGizmos()
OnValidate()
Declaration
public void OnValidate()
SetRenderer(int)
Use this to set this Camera's current ScriptableRenderer to one listed on the Render Pipeline Asset. Takes an index that maps to the list on the Render Pipeline Asset.
Declaration
public void SetRenderer(int index)
Parameters
| Type | Name | Description |
|---|---|---|
| int | index | The index that maps to the RendererData list on the currently assigned Render Pipeline Asset |