public static string ToSerializationString(this AnotherSerializedEnum element) { //Example of implicit translation that would break on enum value name refactor switch (element) { case AnotherSerializedEnum.A: case AnotherSerializedEnum.B: case AnotherSerializedEnum.C: case AnotherSerializedEnum.D: case AnotherSerializedEnum.E: case AnotherSerializedEnum.F: case AnotherSerializedEnum.G: return(element.ToString()); default: Debug.LogError($"Unknown AnotherSerializedEnum: {element}"); return(""); } }
public static void Initialize() { if (initialized) { return; } initialized = true; for (SerializedEnum i = 0; i < SerializedEnum.MAX; i++) { serializedEnums[i.ToSerializationString()] = i; } for (AnotherSerializedEnum i = 0; i < AnotherSerializedEnum.MAX; i++) { anotherSerializedEnums[i.ToSerializationString()] = i; } LoadSystemConfig(); }