using System; using System.Collections.Generic; using UnityEngine; public class MyEnumToInt : MonoBehaviour { [RuntimeInitializeOnLoadMethod] static void OnRuntimeMethodLoad() { new GameObject("MyEnumToInt").AddComponent(); } public static MyEnumToInt Ins; private Dictionary> enumToIntMapping = new Dictionary>(); void Awake() { Ins = this; DontDestroyOnLoad(gameObject); // 열거형 초기화 InitializeEnumMapping(); InitializeEnumMapping(); InitializeEnumMapping(); InitializeEnumMapping(); InitializeEnumMapping(); } private void InitializeEnumMapping() where T : Enum { var mapping = new Dictionary(); int index = 0; foreach (T value in Enum.GetValues(typeof(T))) { mapping.Add(value, index++); } enumToIntMapping[typeof(T)] = mapping; } public int Get_Int(T enumValue) where T : Enum { if (enumToIntMapping.TryGetValue(typeof(T), out var mapping)) { return mapping[enumValue]; } throw new Exception($"Enum type {typeof(T).Name} is not initialized."); } }