using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class HintMessageBox : PrefabInstance<HintMessageBox> //用了个UI小框架
{
static HintMessageBox Instance;
public Text hintIfoTxt;
public Button confirmBtn;
public Button closeBtn;
static Action confirm;
private void Awake()
{
Instance = this;
}
// Start is called before the first frame update
void Start()
{
confirmBtn.onClick.AddListener(OnClickConfirmBtn);
closeBtn.onClick.AddListener(OnClickClose);
}
public static void OpenHintMessageBox(string info, Action action = null)
{
HintMessageBox.Get(GameStart.UIHierarchys[5]); //创建消息框,并且给定父坐标
if (Instance != null)
{
Instance.hintIfoTxt.text = info;
confirm = action;
}
}
private void OnClickConfirmBtn()
{
if (confirm != null)
confirm.Invoke();
Destroy(gameObject);
}
private void OnClickClose()
{
Destroy(gameObject);
}
}
里面有了一个UI小框架显示,你可以用Unity原生的继承MonoBehaviour就可以,只不过你要自己实例化这个消息框,给对应的父物体。