A game about forced loneliness, made by TACStudios
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}