66 lines
2.5 KiB
C#
66 lines
2.5 KiB
C#
using System;
|
|
using UnityEngine.Rendering.HighDefinition;
|
|
|
|
namespace UnityEditor.Rendering.HighDefinition
|
|
{
|
|
internal abstract class SerializedHDProbe
|
|
{
|
|
[Flags]
|
|
internal enum EditorOnlyData
|
|
{
|
|
None = 0,
|
|
CaptureSettingsIsAdvanced = 1 << 0,
|
|
InfluenceVolumeIsAdvanced = 1 << 1,
|
|
CustomSettingsIsAdvanced = 1 << 2
|
|
}
|
|
|
|
internal SerializedObject serializedObject;
|
|
|
|
internal SerializedProperty bakedTexture;
|
|
internal SerializedProperty customTexture;
|
|
internal SerializedProbeSettings probeSettings;
|
|
internal SerializedProbeSettingsOverride probeSettingsOverride;
|
|
internal SerializedProperty proxyVolume;
|
|
internal SerializedProperty editorOnlyData;
|
|
|
|
internal HDProbe target { get { return serializedObject.targetObject as HDProbe; } }
|
|
|
|
internal SerializedHDProbe(SerializedObject serializedObject)
|
|
{
|
|
this.serializedObject = serializedObject;
|
|
|
|
bakedTexture = serializedObject.Find((HDProbe p) => p.bakedTexture);
|
|
customTexture = serializedObject.Find((HDProbe p) => p.customTexture);
|
|
proxyVolume = serializedObject.Find((HDProbe p) => p.proxyVolume);
|
|
probeSettings = new SerializedProbeSettings(serializedObject.FindProperty("m_ProbeSettings"));
|
|
probeSettingsOverride = new SerializedProbeSettingsOverride(serializedObject.FindProperty("m_ProbeSettingsOverride"));
|
|
editorOnlyData = serializedObject.FindProperty("m_EditorOnlyData");
|
|
}
|
|
|
|
internal virtual void Update()
|
|
{
|
|
serializedObject.Update();
|
|
//InfluenceVolume does not have Update. Add it here if it have in the future.
|
|
//CaptureSettings does not have Update. Add it here if it have in the future.
|
|
//FrameSettings does not have Update. Add it here if it have in the future.
|
|
}
|
|
|
|
internal virtual void Apply()
|
|
{
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
internal bool GetEditorOnlyData(EditorOnlyData mask) => (editorOnlyData.intValue & (int)mask) == (int)mask;
|
|
|
|
internal void SetEditorOnlyData(EditorOnlyData mask, bool value)
|
|
{
|
|
if (value)
|
|
editorOnlyData.intValue |= (int)mask;
|
|
else
|
|
editorOnlyData.intValue &= ~(int)mask;
|
|
}
|
|
|
|
internal void ToggleEditorOnlyData(EditorOnlyData mask) => SetEditorOnlyData(mask, !GetEditorOnlyData(mask));
|
|
}
|
|
}
|