这里给大家一个通用的提示或警告窗口的框架

首先先创建一个警告的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,恭喜,又变成了屌丝!"));

unity万能的提示窗口相关推荐

  1. 【Unity实战100例】Unity万能答题系统之单选多选判断题全部通用

    目录 一:题库的配置和处理 1.配置表格题库 2.切换表格为CSV或者TXT格式

  2. 【Unity】Mesh网格编程(三)万能网格几何形体

    用一个通用代码,实现各种锥.柱.管状体的网格创建. 非原创的同系列.虽然总觉得代码上可以再优化,但是实现的功能已经超级屌了. 真是没有不能做的,只有想不到的. 原文: Mesh网格编程(二) 万能网格 ...

  3. Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持

    Chinar blog :www.chinar.xin Unity插件 - EasySave中文详解 本文提供全流程,中文翻译. Chinar 的初衷是将一种简单的生活方式带给世人 使有限时间 具备无 ...

  4. Unity特效需求的Alpha万能Shader

    身为一个特效师,2014年从影视特效进入游戏行业.没进过什么专业的培训,一路边试探边学习坚持到了现在,差不多算是个野路子了. 去年开始自己独立开发一些比较简单的小游戏,因为意识到貌似真的自己做独立开发 ...

  5. Unity应用架构设计(6)——设计动态数据集合ObservableList

    什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没 ...

  6. XML万能数据库设计

    XML万能数据库设计 使用unity开发存取本地数据一般用xml,来实现跨平台的数据存取.为什么不用sqlite我就不解释了,谁用谁知道. 好进入正题,如果你了解hibernate,应该知道他是针对m ...

  7. 深入浅出再谈Unity内存泄漏

    作者:Arthuryu,腾讯高级开发工程师 著作权归作者所有.商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest导读 本文通过对内存泄漏(what)及其危害性(why)的介绍 ...

  8. 【Unity】内存泄漏危害及处理方式(腾讯WeTest分析使用)

    WeTest导读 本文通过对内存泄漏(what)及其危害性(why)的介绍,引出在Unity环境下定位和修复内存泄漏的方法和工具(how).最后提出了一些避免泄漏的方法与建议. 在之前推送的文章< ...

  9. 从unity到unreal4 虚幻4学习笔记 一 : ue4与vs studio、vs code开发环境的安装与配置

    前言 学习ue4的理由 我是个资深unity玩家,自认为可以使用unity做任何事.对虚幻的仰慕纯属技术信仰,懂的都懂不多解释.我并不打算放弃unity,正所谓艺多不压身,多储备点技术栈也没坏处. u ...

最新文章

  1. SLAM从0到1——ORB特征提取及特征匹配
  2. poj 3101 Astronomy (java 分数的最小公倍数 gcd)
  3. java的接口怎么理解_如何理解Java 中的接口
  4. CentOS6找回root密码 - 黑猴子
  5. 从零入门Serverless|一文详解Serverless技术选型
  6. Loadrunner进行HTTPS协议性能测试
  7. mysql中的lgwr_MySQL Replication和Oracle logical standby的原理对比
  8. 计算机图形学 opengl版本 第三版------胡事民 第四章 图形学中的向量工具
  9. ASP.NET 路由实现页面静态化
  10. 又发现几个有意思的网站
  11. 家里可以装网吧无盘服务器吗,我在家里想装个网吧系统,求好的网吧系统。请专业的来个连接我...
  12. 使用国内镜像源来加速python pypi包的安装
  13. 【二分】Caravan Robbers
  14. MATLAB约当标准型,用MATLAB求其约当标准型状态空间表达式
  15. 【UNR #6 A】面基之路(最短路)
  16. HTML5开源游戏引擎lufylegend1.5.0发布
  17. Android源代码编译的准备工作
  18. Bandzip与360压缩
  19. ubuntu下完全卸载 opencv库 详细教程
  20. 指数和对数总结【图形+公式】

热门文章

  1. 从与迪思杰签约 看浪潮主机生态如何布局?
  2. 24时区,GMT,UTC,DST,CST时间详解 ISO8601
  3. substr()函数
  4. Ubuntu安装电源管理工具TLP
  5. 前端生成唯一id UUID
  6. mysql联合唯一约束_MySQL中添加唯一约束和联合唯一约束
  7. python 模拟器多开任务并行
  8. 企业级分布式批处理方案
  9. 基于GPT硬盘模式重装win10操作系统
  10. c++单链表 一元多项式求和_C++一元多项式相加