using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; using System.Collections; using System.IO; public class dlcButton : MonoBehaviour { [Header("�����׼�")] public Image dlc_profileImgae; public Text dlcName; public Text dlcID; public Text dlcProducer; public Text dlcPubliushDate; public Image dlc_nowSelectedImageBoarder; [Header("����")] public Text dlcDescription; [Header("DLC SO (���� Inspector ָ��)")] public dlcData dlcDataSO; [Header("DLC ���� (����ʱ���ɽű����)")] public List dlcContent = new List(); [Header("����·�� (�༭��/����ʱ)")] public string editorSearchFolder = "Assets/Resources/dlc_dlcIndex"; public string runtimeResourcesFolder = "Resources/dlc_dlcIndex"; private Button _btn; public bool Resolved { get; private set; } // Shared cache to avoid repeated Resources.LoadAll scans private static Dictionary cachedById = new Dictionary(); private static List cachedAll = new List(); private static bool cacheBuilt = false; private static bool cacheBuilding = false; private static string cachedFolder = string.Empty; // Selection management (shared across all dlcButton instances) private static List allButtons = new List(); private static int selectedIndex = -1; private const string PlayerPrefsKey = "dlc_selected_index"; // instance index in registration order private int instanceIndex = -1; void Awake() { _btn = GetComponent