void DrawRenderingSettings(CameraRenderType camType, UniversalRenderPipelineAsset rpAsset) { m_RenderingSettingsFoldout.value = EditorGUILayout.BeginFoldoutHeaderGroup(m_RenderingSettingsFoldout.value, Styles.renderingSettingsText); if (m_RenderingSettingsFoldout.value) { DrawRenderer(rpAsset); if (camType == CameraRenderType.Base) { DrawPostProcessing(); } else if (camType == CameraRenderType.Overlay) { DrawPostProcessingOverlay(); EditorGUILayout.PropertyField(m_AdditionalCameraClearDepth, Styles.clearDepth); m_AdditionalCameraDataSO.ApplyModifiedProperties(); } DrawRenderShadows(); if (camType == CameraRenderType.Base) { DrawPriority(); DrawOpaqueTexture(); DrawDepthTexture(); } settings.DrawCullingMask(); settings.DrawOcclusionCulling(); EditorGUILayout.Space(); EditorGUILayout.Space(); } EditorGUILayout.EndFoldoutHeaderGroup(); }
CameraRenderType DrawCameraType() { int selectedRenderer = m_SerializedCamera.renderer.intValue; ScriptableRenderer scriptableRenderer = UniversalRenderPipeline.asset.GetRenderer(selectedRenderer); UniversalRenderer renderer = scriptableRenderer as UniversalRenderer; bool isDeferred = renderer != null ? renderer.renderingMode == RenderingMode.Deferred : false; EditorGUI.BeginChangeCheck(); //EditorGUILayout.PropertyField(m_AdditionalCameraDataCameraTypeProp, Styles.cameraType); CameraRenderType originalCamType = (CameraRenderType)m_SerializedCamera.cameraType.intValue; CameraRenderType camType = (originalCamType != CameraRenderType.Base && isDeferred) ? CameraRenderType.Base : originalCamType; camType = (CameraRenderType)EditorGUILayout.EnumPopup( Styles.cameraType, camType, e => { return(isDeferred ? (CameraRenderType)e != CameraRenderType.Overlay : true); }, false ); if (EditorGUI.EndChangeCheck() || camType != originalCamType) { m_SerializedCamera.cameraType.intValue = (int)camType; UpdateCameras(); } return(camType); }
void DrawEnvironmentSettings(CameraRenderType camType) { m_EnvironmentSettingsFoldout.value = EditorGUILayout.BeginFoldoutHeaderGroup(m_EnvironmentSettingsFoldout.value, Styles.environmentSettingsText); if (m_EnvironmentSettingsFoldout.value) { if (camType == CameraRenderType.Base) { DrawClearFlags(); if (!settings.clearFlags.hasMultipleDifferentValues) { if (GetBackgroundType((CameraClearFlags)settings.clearFlags.intValue) == BackgroundType.SolidColor) { using (var group = new EditorGUILayout.FadeGroupScope(m_ShowBGColorAnim.faded)) { if (group.visible) { settings.DrawBackgroundColor(); } } } } } DrawVolumes(); EditorGUILayout.Space(); EditorGUILayout.Space(); } EditorGUILayout.EndFoldoutHeaderGroup(); }
public static string GetName(this CameraRenderType type) { int typeInt = (int)type; if (typeInt < 0 || typeInt >= s_CameraTypeNames.Length) typeInt = (int)CameraRenderType.Base; return s_CameraTypeNames[typeInt]; }
void DrawCameraType(CameraRenderType camType) { EditorGUI.BeginChangeCheck(); int selCameraType = EditorGUILayout.IntPopup(Styles.cameraType, (int)camType, Styles.m_CameraTypeNames.ToArray(), Styles.additionalDataCameraTypeOptions); if (EditorGUI.EndChangeCheck()) { m_AdditionalCameraDataCameraTypeProp.intValue = selCameraType; m_AdditionalCameraDataSO.ApplyModifiedProperties(); UpdateCameras(); } }
public override void OnInspectorGUI() { var rpAsset = UniversalRenderPipeline.asset; if (rpAsset == null) { base.OnInspectorGUI(); return; } settings.Update(); m_SerializedCamera.serializedObject.Update(); UpdateAnimationValues(false); // Get the type of Camera we are using CameraRenderType camType = (CameraRenderType)m_SerializedCamera.cameraType.intValue; DrawCameraType(); EditorGUILayout.Space(); // If we have different cameras selected that are of different types we do not allow multi editing and we do not draw any more UI. if (m_SerializedCamera.cameraType.hasMultipleDifferentValues) { EditorGUILayout.HelpBox("Cannot multi edit cameras of different types.", MessageType.Info); return; } EditorGUI.indentLevel++; DrawCommonSettings(); DrawRenderingSettings(camType, rpAsset); DrawEnvironmentSettings(camType); if (camType == CameraRenderType.Base) { // Settings only relevant to base cameras EditorGUI.BeginChangeCheck(); DrawOutputSettings(rpAsset); if (EditorGUI.EndChangeCheck()) { UpdateStackCamerasOutput(); } DrawStackSettings(); } EditorGUI.indentLevel--; settings.ApplyModifiedProperties(); m_SerializedCamera.serializedObject.ApplyModifiedProperties(); }
void DrawCameraType() { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_AdditionalCameraDataCameraTypeProp, Styles.cameraType); if (EditorGUI.EndChangeCheck()) { UpdateCameras(); // ScriptableRenderContext.SetupCameraProperties still depends on camera target texture // In order for overlay camera not to override base camera target texture we null it here CameraRenderType camType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue; if (camType == CameraRenderType.Overlay && settings.targetTexture.objectReferenceValue != null) { settings.targetTexture.objectReferenceValue = null; } } }
public override void OnInspectorGUI() { var rpAsset = GraphicsSettings.renderPipelineAsset as UniversalRenderPipelineAsset; if (rpAsset == null) { base.OnInspectorGUI(); return; } settings.Update(); m_AdditionalCameraDataSO.Update(); UpdateAnimationValues(false); // Get the type of Camera we are using CameraRenderType camType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue; DrawCameraType(); EditorGUILayout.Space(); // If we have different cameras selected that are of different types we do not allow multi editing and we do not draw any more UI. if (m_AdditionalCameraDataCameraTypeProp.hasMultipleDifferentValues) { EditorGUILayout.HelpBox("Cannot multi edit cameras of different types.", MessageType.Info); return; } EditorGUI.indentLevel++; DrawCommonSettings(); DrawRenderingSettings(camType, rpAsset); DrawEnvironmentSettings(camType); // Settings only relevant to base cameras if (camType == CameraRenderType.Base) { DrawOutputSettings(rpAsset); DrawStackSettings(); } EditorGUI.indentLevel--; settings.ApplyModifiedProperties(); m_AdditionalCameraDataSO.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { if (m_UniversalRenderPipeline == null) { EditorGUILayout.HelpBox("Universal RP asset not assigned, assign one in the Graphics Settings.", MessageType.Error); return; } if (s_Styles == null) { s_Styles = new Styles(); } settings.Update(); UpdateAnimationValues(false); // Get the type of Camera we are using CameraRenderType camType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue; DrawCameraType(camType); EditorGUILayout.Space(); EditorGUI.indentLevel++; DrawCommonSettings(); DrawRenderingSettings(camType); DrawEnvironmentSettings(camType); // Settings only relevant to base cameras if (camType == CameraRenderType.Base) { DrawOutputSettings(); DrawStackSettings(); } EditorGUI.indentLevel--; settings.ApplyModifiedProperties(); }
void DrawCameraType() { int selectedRenderer = m_AdditionalCameraDataRendererProp.intValue; ScriptableRenderer scriptableRenderer = UniversalRenderPipeline.asset.GetRenderer(selectedRenderer); UniversalRenderer renderer = scriptableRenderer as UniversalRenderer; bool isDeferred = renderer != null ? renderer.renderingMode == RenderingMode.Deferred : false; EditorGUI.BeginChangeCheck(); //EditorGUILayout.PropertyField(m_AdditionalCameraDataCameraTypeProp, Styles.cameraType); CameraRenderType originalCamType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue; CameraRenderType camType = (originalCamType != CameraRenderType.Base && isDeferred) ? CameraRenderType.Base : originalCamType; camType = (CameraRenderType)EditorGUILayout.EnumPopup( Styles.cameraType, camType, e => { return(isDeferred ? (CameraRenderType)e != CameraRenderType.Overlay : true); }, false ); if (EditorGUI.EndChangeCheck() || camType != originalCamType) { m_AdditionalCameraDataCameraTypeProp.intValue = (int)camType; UpdateCameras(); // ScriptableRenderContext.SetupCameraProperties still depends on camera target texture // In order for overlay camera not to override base camera target texture we null it here if (camType == CameraRenderType.Overlay && settings.targetTexture.objectReferenceValue != null) { settings.targetTexture.objectReferenceValue = null; } } }
public static string GetName(this CameraRenderType type) { return(s_CameraTypeNames[(int)type]); }