using UnityEngine; using System.Collections.Generic; public class CursorManager : MonoBehaviour { [System.Serializable] public struct CursorData { public CursorState state; public Sprite cursorSprite; } public List cursorList = new List(); private Dictionary cursorDictionary = new Dictionary(); public GameObject cursorObject; // Assign CursorImage from the Prefab private void Awake() { foreach (CursorData cursor in cursorList) { cursorDictionary[cursor.state] = cursor.cursorSprite; } } private void Start() { GameStateManager.Instance.OnStateChanged += SetCursor; SetCursor(GameStateManager.Instance.GetCurrentState()); } private void SetCursor(CursorState state) { Debug.Log("SetCursor1: " + state); if (cursorDictionary.TryGetValue(state, out Sprite cursorSprite)) { cursorObject.GetComponent().sprite = cursorSprite; Debug.Log("SetCursor2: " + state); } } }