12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #if UNITY_EDITOR
- using UnityEngine;
- using UnityEditor;
- namespace VLB
- {
- public class DynamicOcclusionAbstractBaseEditor<T> : EditorCommon where T : DynamicOcclusionAbstractBase
- {
- SerializedProperty updateRate, waitXFrames;
- protected TargetList<T> m_Targets;
- protected override void OnEnable()
- {
- base.OnEnable();
- updateRate = FindProperty((DynamicOcclusionDepthBuffer x) => x.updateRate);
- waitXFrames = FindProperty((DynamicOcclusionDepthBuffer x) => x.waitXFrames);
- m_Targets = new TargetList<T>(targets);
- }
- public override void OnInspectorGUI()
- {
- base.OnInspectorGUI();
- if (!Config.Instance.featureEnabledDynamicOcclusion)
- {
- EditorGUILayout.HelpBox(EditorStrings.DynOcclusion.HelpFeatureDisabled, MessageType.Warning);
- }
- }
- protected void DisplayCommonInspector()
- {
- if (FoldableHeader.Begin(this, EditorStrings.DynOcclusion.HeaderUpdateRate))
- {
- updateRate.CustomEnum<DynamicOcclusionUpdateRate>(EditorStrings.DynOcclusion.UpdateRate, EditorStrings.DynOcclusion.UpdateRateDescriptions);
- if (m_Targets.HasAtLeastOneTargetWith((T comp) => { return comp.updateRate.HasFlag(DynamicOcclusionUpdateRate.EveryXFrames); }))
- {
- EditorGUILayout.PropertyField(waitXFrames, EditorStrings.DynOcclusion.WaitXFrames);
- }
- EditorGUILayout.HelpBox(
- string.Format(EditorStrings.DynOcclusion.GetUpdateRateAdvice<T>(m_Targets[0].updateRate), m_Targets[0].waitXFrames),
- MessageType.Info);
- }
- FoldableHeader.End();
- serializedObject.ApplyModifiedProperties();
- }
- }
- }
- #endif
|