Unity3D 调用模态对话框/Unity3D MessageBox
Unity模态对话框/Unity MessageBox
很多时候,我们需要将Unity的exe产品发布到某一个平台。比如某某斗地主发布到某Q游戏。
这时候如果需要调试肿么办。办法无外乎那几个。
1:源码调试,前提是整套系统全都是你们家公司的。
2:附加进程,对启动运行的游戏,在monodevelop中进行附加进程调试,如果不是毕现的,这也是很蛋疼。
3:日志,unity的日志功能很渣渣,稍不注意就会出现日志内容字符混乱,神龙见首不见尾,漫漫日志中找内
容,无比蛋疼,最坑爹的是不一定在最后崩溃时刻能成功记录讯息。
4:本次重点啊:MessageBox,爽快的模态对话框,这个东西就可以达到,仅在异常的时候出现模态对话框,
锁定程序进程,其他时候程序随便跑啦。。。下面开始了:
怎么用呢,MessageBox存在于System.Windows.Forms.dll中,这个东西请各位看官别漏了啊。
把它放到Unity工程Assets/Plugins/下这时候程序就自动添加引用的。
接下来就是把unity的PlayerSettings中 Api Compatibility Level改为NET2.0。
这样子,侬才能在程序using了。
在使用【using System.Windows.Forms.MessageBox】后某些地方会提示类冲突。比如Application类;
这时候可以使用【using MsgBoxBase = System.Windows.Forms.MessageBox】替代,笔者就是这么凑合用的呢;
介个时候就可以使用MessageBox鸟。下面看看他给我们提供了什么呢?
==============================================================
namespace System.Windows.Forms
{
public class MessageBox
{
public static DialogResult Show(string text);
public static DialogResult Show(IWin32Window owner, string text);
public static DialogResult Show(string text, string caption);
public static DialogResult Show(IWin32Window owner, string text, string caption);
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons);
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons);
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);
public static DialogResult Show(IWin32Window owner, string text, string
caption, MessageBoxButtons buttons, MessageBoxIcon icon);
public static DialogResult Show(string text, string caption,
MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton
defaultButton);
public static DialogResult Show(IWin32Window
owner, string text, string caption, MessageBoxButtons buttons,
MessageBoxIcon icon, MessageBoxDefaultButton defaultButton);
public static DialogResult Show(string text, string caption,
MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton
defaultButton, MessageBoxOptions options);
public static
DialogResult Show(IWin32Window owner, string text, string caption,
MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton
defaultButton, MessageBoxOptions options);
}
}
==============================================================
这样子 ,你就可以
if(5<6){
MsgBoxBase.Show("Unity启禀大人,帖子又成功传播知识鸟!", this.GetType().Name, WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Error);
}
就这样,就可以在程序中只针对异常错误跳出模态对话框,你不关闭,程序也就老老实实的等着你呢。
MessageBoxButtons 枚举参考:
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.messageboxbuttons%28v=vs.110%29.aspx
MessageBoxIcon 枚举参考:
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.messageboxicon.aspx
Unity3D 调用模态对话框/Unity3D MessageBox的更多相关文章
- PreTranslateMessage中有调用模态对话框的解决方法
原文:https://blog.csdn.net/guoguojune/article/details/45332511 dlg.DoModal()截住了界面消息,所以返回时原来的pMsg的内容已经更 ...
- Bootstrap 模态对话框只加载一次 remote 数据的解决办法 转载
http://my.oschina.net/qczhang/blog/190215 摘要 前端框架 Bootstrap 的模态对话框,可以使用 remote 选项指定一个 URL,这样对话框在第一次弹 ...
- Unity3d调用iOS陀螺仪
How to write gyroscope controller with Unity3d http://blog.heyworks.com/how-to-write-gyroscope-contr ...
- QDialog 模态对话框与事件循环(exec其实就是调用了show和eventLoop.exec)
起源 qtcn中文论坛中有网友问到: 假设程序正常运行时,只有一个简单的窗体A,此时只有一个GUI主线程,在这个主线程中有一个事件循环处理窗体上的事件.当此程序运行到某阶段时,弹出一个模态窗体B(书上 ...
- QT之两种模态对话框的调用
模态对话框:就是没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互. 1.show调用 LoginDialog *dlg = new LoginDialog(); dlg->setModa ...
- Unity3D调用android方法(非插件方式)
关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这 ...
- [原] unity3d调用android版 人人sdk
开发过程 遇到天坑:纯android工程没问题,集成到unity3d中 就老提示 没登陆 .最后跟到底 发现是Util.java 中 openUrl 函数出的bug.unity3d 中调android ...
- Unity3D 调用Android与IOS的剪贴板
Unity3D剪贴板 最近遇到一个需要调用Android与IOS设备本身剪贴板的需求,就是在Unity中,要将文本复制到设备本身的剪贴板中,然后在其他应用程序中都能粘贴. 最开始在网上查到的方式是使用 ...
- Qt按ESC关闭模态对话框不触发closeEvent()问题解析(ESC默认调用的是reject()函数,所以必须覆盖这个函数才会有效果)good
事情是这样的:今天调试窗体,突然发现按ESC键居然跳过closeEvent()关闭了对话框!我的关闭判断都在closeEvent()里,这直接导致非正常关闭了正在进行的工作.先重建下场景: 调用处: ...
随机推荐
- laravel框架总结(六) -- 门面(facades)
Facades 为应用程序的服务容器中可用的类提供了一个「静态」接口. Laravel 本身附带许多的 facades,甚至你可能在不知情的状况下已经在使用他们! xpower的静态接口(门面 ...
- EFS解密----未重装系统
一种方法.(手动删除私钥测试通过) 利用软件advanced efs data recovery 二种方法. 前提:在系统未重装或私钥未丢失.两个软件: PsExec和 IceSword.前者是国外 ...
- Android知识散点
1.所有活动都需要在AndroidMainfest.xml中注册后才能生效. <activity android:name=".MainActivity" android:l ...
- opengl视图变换 投影变换推导
视图变换在opengl中,视图变换的输入是:(1)眼睛位置(或者说相机位置)eys:(2)眼睛朝向的中心center,(就是眼睛朝哪里看);(3)头的方向up.任何一点经过视图变换后都会转化到眼睛坐标 ...
- 两个有序数组中查找第K大数
题目:两个数组A.B,长度分别为m.n,即A(m).B(n),分别是递增数组.求第K大的数字. 方法一: 简单的办法,使用Merge Sort,首先将两个数组合并,然后在枚举查找.这个算法的时间复 ...
- CSS背景样式
CSS是级联样式表,用来表现HTML等文件样式的语言,CSS能够真正做到网页的表现与内容分离的设计语言,也就是说,做好了一款网页,可以通过另一个后缀名是css的文件进行修改其中的样式,不过在html的 ...
- GPIO相关知识
参考资料: 1. 维基百科GPIO 2. GPIO博客资料(一) 3. MMIO和PMIO 知识点: ● GPIO是General-purpose input/output的缩写,是一个在集成电路上的 ...
- linux显示-bash-4.2# 问题
今天,安装配置完mysql后,重新连接的shell的时候显示的不是root@localhost # 了,而是显示的-bash-4.2# 提示信息: Last login: Tue Apr 5 00:3 ...
- 学习mongo系列(六)limit(munber),skip(number)
> db.user.find().pretty(){ "_id" : ObjectId("56946fba3a18f4867aecbcd1"), &quo ...
- VLAN
VLAN VLAN技术要点主要有两点: 1.支持VLAN的交换机的内部交换原理: 2.设备之间(交换机之间,交换机与路由器之间,交换机与主机之间)交互时,VLAN TAG的添加和移除. VLAN通信 ...