using System.Collections.Generic; using Prefab; using UnityEngine; using UnityEngine.Events; namespace Managers { public class RightMenuManager:Utils.MonoSingleton { [SerializeField] private GameObject _canvas; [SerializeField] private RightMenuPrefab _rightMenuPrefab; public GameObject Canvas { get { if (_canvas == null) { _canvas = GameObject.Find("Canvas"); // 根据你的实际场景修改查找条件 if (_canvas == null) { Debug.LogError("RightMenu Canvas not found in scene!"); } } return _canvas; } } public RightMenuPrefab RightMenuPrefab { get { if (_rightMenuPrefab == null) { _rightMenuPrefab = Resources.Load("Prefab/RightMenu"); if (_rightMenuPrefab == null) { Debug.LogError("RightMenuPrefab not found in Resources!"); } } return _rightMenuPrefab; } } public static void GenerateRightMenu(List<(string name, UnityAction callback)> buttons,Vector3 position) { var rightMenuObj = Instantiate(RightMenuManager.Instance.RightMenuPrefab.gameObject, RightMenuManager.Instance.Canvas.transform); var rightMenu=rightMenuObj.GetComponent(); rightMenu.Init(buttons); rightMenu.transform.position = position; rightMenu.Show(); } protected override void OnStart() { } } }