using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; public class Manager : MonoBehaviour { public static Manager instance; public Canvas _Canvas; public List panelsPrefab = new List(); // 使用Dictionary来管理已实例化的面板,键为预制体的索引,值为实例化的面板 private Dictionary panels = new Dictionary(); void Awake() { instance = this; } public GameObject ShowPanel(int index) { if (index < 0 || index >= panelsPrefab.Count) { Debug.LogError("ShowPanel: Index 超出范围"); return null; } if (panels.ContainsKey(index)) { ShowPanel(panels[index]); return panels[index]; } else { ShowPanel(panels[index]); return GameObject.Instantiate(panelsPrefab[index], _Canvas.transform); } return null; } public virtual void ShowPanel(GameObject _panel) { _panel.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); _panel.transform.DOScale(1f, 0.5f); } public virtual void hidePanel(GameObject _panel) { _panel.SetActive(false); } }