unity万能的提示窗口
这里给大家一个通用的提示或警告窗口的框架
首先先创建一个警告的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万能的提示窗口相关推荐
- 【Unity实战100例】Unity万能答题系统之单选多选判断题全部通用
目录 一:题库的配置和处理 1.配置表格题库 2.切换表格为CSV或者TXT格式
- 【Unity】Mesh网格编程(三)万能网格几何形体
用一个通用代码,实现各种锥.柱.管状体的网格创建. 非原创的同系列.虽然总觉得代码上可以再优化,但是实现的功能已经超级屌了. 真是没有不能做的,只有想不到的. 原文: Mesh网格编程(二) 万能网格 ...
- Unity EasySave3中文图文教程详解-万能数据保存插件多平台支持
Chinar blog :www.chinar.xin Unity插件 - EasySave中文详解 本文提供全流程,中文翻译. Chinar 的初衷是将一种简单的生活方式带给世人 使有限时间 具备无 ...
- Unity特效需求的Alpha万能Shader
身为一个特效师,2014年从影视特效进入游戏行业.没进过什么专业的培训,一路边试探边学习坚持到了现在,差不多算是个野路子了. 去年开始自己独立开发一些比较简单的小游戏,因为意识到貌似真的自己做独立开发 ...
- Unity应用架构设计(6)——设计动态数据集合ObservableList
什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没 ...
- XML万能数据库设计
XML万能数据库设计 使用unity开发存取本地数据一般用xml,来实现跨平台的数据存取.为什么不用sqlite我就不解释了,谁用谁知道. 好进入正题,如果你了解hibernate,应该知道他是针对m ...
- 深入浅出再谈Unity内存泄漏
作者:Arthuryu,腾讯高级开发工程师 著作权归作者所有.商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest导读 本文通过对内存泄漏(what)及其危害性(why)的介绍 ...
- 【Unity】内存泄漏危害及处理方式(腾讯WeTest分析使用)
WeTest导读 本文通过对内存泄漏(what)及其危害性(why)的介绍,引出在Unity环境下定位和修复内存泄漏的方法和工具(how).最后提出了一些避免泄漏的方法与建议. 在之前推送的文章< ...
- 从unity到unreal4 虚幻4学习笔记 一 : ue4与vs studio、vs code开发环境的安装与配置
前言 学习ue4的理由 我是个资深unity玩家,自认为可以使用unity做任何事.对虚幻的仰慕纯属技术信仰,懂的都懂不多解释.我并不打算放弃unity,正所谓艺多不压身,多储备点技术栈也没坏处. u ...
最新文章
- SLAM从0到1——ORB特征提取及特征匹配
- poj 3101 Astronomy (java 分数的最小公倍数 gcd)
- java的接口怎么理解_如何理解Java 中的接口
- CentOS6找回root密码 - 黑猴子
- 从零入门Serverless|一文详解Serverless技术选型
- Loadrunner进行HTTPS协议性能测试
- mysql中的lgwr_MySQL Replication和Oracle logical standby的原理对比
- 计算机图形学 opengl版本 第三版------胡事民 第四章 图形学中的向量工具
- ASP.NET 路由实现页面静态化
- 又发现几个有意思的网站
- 家里可以装网吧无盘服务器吗,我在家里想装个网吧系统,求好的网吧系统。请专业的来个连接我...
- 使用国内镜像源来加速python pypi包的安装
- 【二分】Caravan Robbers
- MATLAB约当标准型,用MATLAB求其约当标准型状态空间表达式
- 【UNR #6 A】面基之路(最短路)
- HTML5开源游戏引擎lufylegend1.5.0发布
- Android源代码编译的准备工作
- Bandzip与360压缩
- ubuntu下完全卸载 opencv库 详细教程
- 指数和对数总结【图形+公式】