using UnityEditor; namespace RebootKit.Editor.Utils { public struct CVarSerializedProperties { public SerializedProperty flags; public SerializedProperty name; public SerializedProperty description; public SerializedProperty defaultValueKind; public SerializedProperty defaultValueNumber; public SerializedProperty defaultValueString; } public static class CVarSerializedPropertiesFinder { const string k_CVarFlagsProperty = "name"; const string k_CVarNameProperty = "name"; const string k_CVarDescriptionProperty = "description"; const string k_CVarDefaultValueProperty = "defaultValue"; const string k_CVarDefaultValueKindProperty = "kind"; const string k_CVarDefaultValueNumberValueProperty = "numberValue"; const string k_CVarDefaultValueStringValueProperty = "stringValue"; public static CVarSerializedProperties Find(SerializedProperty cvar) { CVarSerializedProperties properties = new CVarSerializedProperties(); properties.flags = cvar.FindPropertyRelative(k_CVarFlagsProperty); properties.name = cvar.FindPropertyRelative(k_CVarNameProperty); properties.description = cvar.FindPropertyRelative(k_CVarDescriptionProperty); SerializedProperty value = cvar.FindPropertyRelative(k_CVarDefaultValueProperty); if (value != null) { properties.defaultValueKind = value.FindPropertyRelative(k_CVarDefaultValueKindProperty); properties.defaultValueNumber = value.FindPropertyRelative(k_CVarDefaultValueNumberValueProperty); properties.defaultValueString = value.FindPropertyRelative(k_CVarDefaultValueStringValueProperty); } return properties; } } }