A game about forced loneliness, made by TACStudios
at master 32 lines 1.1 kB view raw
1namespace UnityEngine.Rendering 2{ 3 using System; 4 using UnityEngine; 5 6 /// <summary> 7 /// Class to serizalize Enum as string and recover it's state 8 /// </summary> 9 [Serializable] 10 public class SerializableEnum 11 { 12 [SerializeField] private string m_EnumValueAsString; 13 [SerializeField] private string m_EnumTypeAsString; 14 15 /// <summary> Value as enum </summary> 16 public Enum value 17 { 18 get => !string.IsNullOrEmpty(m_EnumTypeAsString) && Enum.TryParse(Type.GetType(m_EnumTypeAsString), m_EnumValueAsString, out object result) ? (Enum)result : default; 19 set => m_EnumValueAsString = value.ToString(); 20 } 21 22 /// <summary> 23 /// Construct an enum to be serialized with a type 24 /// </summary> 25 /// <param name="enumType">The underliying type of the enum</param> 26 public SerializableEnum(Type enumType) 27 { 28 m_EnumTypeAsString = enumType.AssemblyQualifiedName; 29 m_EnumValueAsString = Enum.GetNames(enumType)[0]; 30 } 31 } 32}