52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
|
#if UNITY_EDITOR
|
|||
|
using UnityEngine;
|
|||
|
using UnityEditor;
|
|||
|
|
|||
|
namespace VLB
|
|||
|
{
|
|||
|
public class Editor_DynamicOcclusionAbstractBase<T> : Editor_CommonSD where T : DynamicOcclusionAbstractBase
|
|||
|
{
|
|||
|
SerializedProperty updateRate = null;
|
|||
|
SerializedProperty waitXFrames = null;
|
|||
|
protected TargetList<T> m_Targets;
|
|||
|
|
|||
|
protected override void OnEnable()
|
|||
|
{
|
|||
|
base.OnEnable();
|
|||
|
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
|