2016-04-22 176 views
-2

有这样的代码创建对话框/弹出

bool b = EditorUtility.DisplayDialog("Test", 
"Reset or continue?", "Reset", "Continue"); 
if (b) 
{ 
    ResetGame(); 
} 

,但它只能在编辑器中,而不是在游戏窗口。如何用适用于游戏的东西替换EditorUtility.DisplayDialog?

回答

2

任何统一的类,包含单词“编辑器”,或从UnityEditor命名空间来表示该class被设计在了编辑器二手和将在编辑器中工作。所以EditorUtility是用于Unity编辑器只有

你需要实现你自己的模态窗口,并能够这样做,你必须了解基本的Unity UI,如创建按钮,面板,文本。所以learn Unity 基本用户界面第一。您需要做的就是将UI对象放在面板中,然后在需要时激活/停用它们。

例如,这是你的对话panle:

public GameObject dialoguePanel; 

显示的UI面板

dialoguePanel.SetActive(true); 

对话,以隐藏它:

dialoguePanel.SetActive(false); 

您可以订阅对话框的按钮或UI使用onClick.AddListener动态地控制事件。有关如何订阅UI事件的更多信息,请参阅this

如果你仍然无法实现你的模态窗口,然后按照下面的教程这就是你正在寻找什么。

统一教程的通用模式窗口:

MAKING A GENERIC MODAL WINDOW Part 1

MAKING A GENERIC MODAL WINDOW Part 2

MAKING A GENERIC MODAL WINDOW Part 3

+0

如何使自己的窗口? – user3153616

+0

@ user3153616您可以将其称为对话框,但可以称为模式窗口...当您与背景图片进行对话时,它会变成模态窗口,如果您想要,可以移动它。教程1到3将告诉你如何。 – Programmer