弹窗管理

This commit is contained in:
wulongxiao 2024-12-17 18:03:58 +08:00
parent 4b9f5a5c6e
commit 0a885e2514
2 changed files with 64 additions and 0 deletions

View File

@ -0,0 +1,53 @@
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<GameObject> panelsPrefab = new List<GameObject>();
// 使用Dictionary来管理已实例化的面板键为预制体的索引值为实例化的面板
private Dictionary<int, GameObject> panels = new Dictionary<int, GameObject>();
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);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 540b624a12d7f6b41aa484eb3aaf4aea
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: