RizzeBattleRoyale/Assets/Photon/FusionAddons/KCC/Editor/KCCAuthorityBehaviorDrawer.cs

35 lines
1.3 KiB
C#
Raw Permalink Normal View History

2025-09-24 11:24:38 +05:00
namespace Fusion.Addons.KCC.Editor
{
using UnityEngine;
using UnityEditor;
[CustomPropertyDrawer(typeof(EKCCAuthorityBehavior))]
public sealed class KCCAuthorityBehaviorDrawer : PropertyDrawer
{
// PRIVATE MEMBERS
private static readonly int[] _behaviorIDs = new int[] { (int)EKCCAuthorityBehavior.PredictFixed_InterpolateRender, (int)EKCCAuthorityBehavior.PredictFixed_PredictRender };
private static readonly GUIContent[] _behaviorNames = new GUIContent[] { new GUIContent("Predict Fixed | Interpolate Render"), new GUIContent("Predict Fixed | Predict Render") };
// PropertyDrawer INTERFACE
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
int storedBehaviorIndex = _behaviorIDs.IndexOf(property.intValue);
if (storedBehaviorIndex < 0)
{
storedBehaviorIndex = 0;
property.intValue = _behaviorIDs[0];
EditorUtility.SetDirty(property.serializedObject.targetObject);
}
int selectedBehaviorIndex = EditorGUI.Popup(position, label, storedBehaviorIndex, _behaviorNames);
if (selectedBehaviorIndex >= 0 && selectedBehaviorIndex != storedBehaviorIndex)
{
property.intValue = _behaviorIDs[selectedBehaviorIndex];
EditorUtility.SetDirty(property.serializedObject.targetObject);
}
}
}
}