unity 弹窗提示_unity 之 自定义弹出框

本文介绍如何在Unity中创建一个自定义的弹出框组件,包括按钮配置(确认、取消、重试)、文本显示以及弹窗位置的设置。通过`UiMessage`类展示了弹窗的初始化和事件监听,实现不同类型的对话框效果,如确认、取消、重试等交互功能。
摘要由CSDN通过智能技术生成

usingUnityEngine;usingUnityEngine.UI;public classUiMessage : MonoBehaviour

{publicButton ok;publicButton cancel;publicButton retry;///

///遮罩///

publicGameObject panel;publicText headText;publicText text;///

///弹出框///

privateGameObject messageBox;private voidAwake()

{

messageBox= gameObject.transform.GetChild(1).gameObject;

ok= messageBox.transform.Find("ok").GetComponent();

cancel= messageBox.transform.Find("cancel").GetComponent();

retry= messageBox.transform.Find("retry").GetComponent();

panel= gameObject.transform.Find("panel").gameObject;

text= messageBox.transform.Find("Text").GetComponent();

headText= messageBox.transform.GetChild(0).Find("head").GetComponent();//将提示框居中显示

messageBox.transform.position = new Vector3(Screen.width / 2 - messageBox.GetComponent().rect.width / 2,

Screen.height/ 2 + messageBox.GetComponent().rect.height / 2, 0);

init();

}private voidOnEnable()

{

init();

}private voidinit()

{

ok.onClick.AddListener(MessageBox.onClickOk);

cancel.onClick.AddListener(MessageBox.onClickCancel);

retry.onClick.AddListener(MessageBox.onClickRetry);

text.text=MessageBox.text;

headText.text=MessageBox.headText;//根据传递的参数,进行样式的显示

switch(MessageBox.dialogResult)

{caseDialogResult.Ok:

ok.gameObject.SetActive(true);

cancel.gameObject.SetActive(false);

retry.gameObject.SetActive(false);break;caseDialogResult.OKCancel:

ok.gameObject.SetActive(true);

cancel.gameObject.SetActive(true);

retry.gameObject.SetActive(false);break;caseDialogResult.RetryCancel:

ok.gameObject.SetActive(true);

cancel.gameObject.SetActive(true);

retry.gameObject.SetActive(true);break;caseDialogResult.YesNo:

ok.transform.GetChild(0).GetComponent().text = "是";

cancel.transform.GetChild(0).GetComponent().text = "否";

ok.gameObject.SetActive(true);

cancel.gameObject.SetActive(true);

retry.gameObject.SetActive(false);break;caseDialogResult.YesNoCancel:

ok.transform.GetChild(0).GetComponent().text = "是";

cancel.transform.GetChild(0).GetComponent().text = "否";

ok.gameObject.SetActive(true);

cancel.gameObject.SetActive(true);

retry.gameObject.SetActive(true);break;

}

}private voidUpdate()

{

panel.SetActive(MessageBox.type);

gameObject.SetActive(MessageBox.state);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值