暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

UniversalRenderPipelineSerializedLight.cs 4.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using UnityEngine.Rendering.Universal;
  2. namespace UnityEditor.Rendering.Universal
  3. {
  4. internal class UniversalRenderPipelineSerializedLight : ISerializedLight
  5. {
  6. /// <summary>The base settings of the light</summary>
  7. public LightEditor.Settings settings { get; }
  8. /// <summary>The light serialized</summary>
  9. public SerializedObject serializedObject { get; }
  10. /// <summary>The additional light data serialized</summary>
  11. public SerializedObject serializedAdditionalDataObject { get; private set; }
  12. public UniversalAdditionalLightData additionalLightData => lightsAdditionalData[0];
  13. public UniversalAdditionalLightData[] lightsAdditionalData { get; private set; }
  14. // Common SRP's Lights properties
  15. public SerializedProperty intensity { get; }
  16. // URP Light Properties
  17. public SerializedProperty useAdditionalDataProp { get; } // Does light use shadow bias settings defined in UniversalRP asset file?
  18. public SerializedProperty additionalLightsShadowResolutionTierProp { get; } // Index of the AdditionalLights ShadowResolution Tier
  19. public SerializedProperty softShadowQualityProp { get; } // Per light soft shadow filtering quality.
  20. public SerializedProperty lightCookieSizeProp { get; } // Multi dimensional light cookie size replacing `cookieSize` in legacy light.
  21. public SerializedProperty lightCookieOffsetProp { get; } // Multi dimensional light cookie offset.
  22. // Light layers related
  23. public SerializedProperty renderingLayers { get; }
  24. public SerializedProperty customShadowLayers { get; }
  25. public SerializedProperty shadowRenderingLayers { get; }
  26. /// <summary>Method that updates the <see cref="SerializedObject"/> of the Light and the Additional Light Data</summary>
  27. public void Update()
  28. {
  29. serializedObject.Update();
  30. serializedAdditionalDataObject.Update();
  31. settings.Update();
  32. }
  33. /// <summary>Method that applies the modified properties the <see cref="SerializedObject"/> of the Light and the Light Camera Data</summary>
  34. public void Apply()
  35. {
  36. serializedObject.ApplyModifiedProperties();
  37. serializedAdditionalDataObject.ApplyModifiedProperties();
  38. settings.ApplyModifiedProperties();
  39. }
  40. /// <summary>Constructor</summary>
  41. /// <param name="serializedObject"><see cref="SerializedObject"/> with the light</param>
  42. /// <param name="settings"><see cref="LightEditor.Settings"/>with the settings</param>
  43. public UniversalRenderPipelineSerializedLight(SerializedObject serializedObject, LightEditor.Settings settings)
  44. {
  45. this.settings = settings;
  46. settings.OnEnable();
  47. this.serializedObject = serializedObject;
  48. lightsAdditionalData = CoreEditorUtils
  49. .GetAdditionalData<UniversalAdditionalLightData>(serializedObject.targetObjects);
  50. serializedAdditionalDataObject = new SerializedObject(lightsAdditionalData);
  51. intensity = serializedObject.FindProperty("m_Intensity");
  52. useAdditionalDataProp = serializedAdditionalDataObject.FindProperty("m_UsePipelineSettings");
  53. additionalLightsShadowResolutionTierProp = serializedAdditionalDataObject.FindProperty("m_AdditionalLightsShadowResolutionTier");
  54. softShadowQualityProp = serializedAdditionalDataObject.FindProperty("m_SoftShadowQuality");
  55. lightCookieSizeProp = serializedAdditionalDataObject.FindProperty("m_LightCookieSize");
  56. lightCookieOffsetProp = serializedAdditionalDataObject.FindProperty("m_LightCookieOffset");
  57. renderingLayers = serializedAdditionalDataObject.FindProperty("m_RenderingLayers");
  58. customShadowLayers = serializedAdditionalDataObject.FindProperty("m_CustomShadowLayers");
  59. shadowRenderingLayers = serializedAdditionalDataObject.FindProperty("m_ShadowRenderingLayers");
  60. settings.ApplyModifiedProperties();
  61. }
  62. }
  63. }