unity万能的提示窗口
来源:互联网 发布:末日拾荒者 知乎 编辑:程序博客网 时间:2024/06/06 12:41
这里给大家一个通用的提示或警告窗口的框架
首先先创建一个警告的Model类(不用继承MonoBehaviour)WarningModel
using UnityEngine;using System.Collections;//声明一个警告委托 用于在弹出警告的同时运行其他程序的方法 public delegate void WarningResult();public class WarningModel {//声明该方法委托public WarningResult result;//需要显示的文字public string value;//延迟多久自动关闭public float delay;//警告模型public WarningModel(string value,WarningResult result=null,float delay=-1){this.value=value;this.result=result;this.delay=delay;}}
接着再创建一个警告的UI窗口,创建一个WarningWindow脚本拖给该窗口,并将自身的子物体UILabel(NGUI)或Text(UGUI),拖到检视窗口,然后拖成预制体
using System.Collections;public class WarningWindow : MonoBehaviour {[SerializeField]private UILabel text; //NGUI//private Text text; //UGUI//用于接收model的result方法WarningResult result;//使Window显示出来 如果有需要延迟消失 就delay后消失public void active(WarningModel value){text.text=value.value;this.result=value.result;//如果WarningModel设置了延迟时间if(value.delay>0){//delay时间后执行close函数Invoke("close",value.delay);}gameObject.SetActive(true);}//关闭Window 如果有需要运行的方法就运行public void close(){//close函数是否正待等候调用 很明显他已经调用了 现在要删除它if(IsInvoking("close")){//取消调用CancelInvoke("close");}gameObject.SetActive(false);//看看是否有需要执行的函数if(result!=null){result();}}}
创建WarningManager脚本,挂载在一个一直存在的物体上(比如:摄像机)
using UnityEngine;using System.Collections;using System.Collections.Generic;public class WarningManager : MonoBehaviour {//存放所有警告Model的列表public static List<WarningModel> errors=new List<WarningModel> ();[SerializeField]private WarningWindow window; //警告窗口void Update(){if(errors.Count>0){//取出列表的第一个WarningModel err=errors[0];//然后删除errors.RemoveAt(0);//最后显示window.active(err);}}}
如果想要在其他窗口重用,将创建的预制体拖到Canvas(UGUI)或UI Root(NGUI)下,然后将WarningManager 拖给一个一直存在的物体上(比如:摄像机)
如果想要显示警告窗口,就在代码中使用
WarningManager.errors.Add(new WarningModel("你的金币已为0,恭喜,又变成了屌丝!"));
1 0
- unity万能的提示窗口
- unity万能的提示窗口
- unity提示消息窗口
- unity实现窗口提示代码
- Unity窗口的管理
- Unity欢迎窗口的信息
- Unity Animator 窗口的控制
- Unity 简单的提示框
- 关闭窗口的时候提示
- 没有提示的关闭窗口
- python 简单的窗口提示
- unity 实现Game窗口的Stats
- 提示窗口
- 提示窗口
- 提示信息窗口的JS实现
- .net删除提示窗口的代码实现
- 新浪博客的提示窗口javascript
- 关闭窗口不提示信息的方法
- Leveldb源码分析--13
- CGAffineTransform的简单使用(一)
- java.lang.Thread
- K-means聚类算法
- 【鸟哥的linux私房菜-学习笔记】DHCP运作原理
- unity万能的提示窗口
- 杰青、长江、973、青年973、优青、青千
- HD_2037今年暑假不AC
- 首字母变大写
- hdu 1392 凸包问题
- WEBLOGIC在AIX环境下的安装、配置和启动
- 浅谈C/C++的time_t函数
- pxelinux.0
- linux 根据当前日期获取上个季度的第一天和最后一天