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