创建对话框/弹出窗口

时间:2016-04-22 19:01:16

标签: c# unity3d

有这样的代码

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

但它仅适用于编辑器,而不适用于游戏。如何用适用于游戏的东西替换EditorUtility.DisplayDialog?

1 个答案:

答案 0 :(得分:3)

包含单词"编辑器"或者来自UnityEditor命名空间意味着class旨在用于编辑器 ,并且在编辑器中工作。因此EditorUtility适用于Unity Editor

您需要实现自己的模态窗口,为此,您必须了解基本的Unity UI,例如创建按钮,面板,文本。首先是learn Unity 基本用户界面。您需要做的就是将UI对象放在面板中,然后在需要时激活/停用它们。

例如,这是你的对话框:

public GameObject dialoguePanel;

显示UI面板的对话

dialoguePanel.SetActive(true);

隐藏它:

dialoguePanel.SetActive(false);

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

如果您仍然无法实施模态窗口,请按照下面的教程进行操作,因为它正是您所寻找的。

通用模态窗口的Unity教程:

MAKING A GENERIC MODAL WINDOW Part 1

MAKING A GENERIC MODAL WINDOW Part 2

MAKING A GENERIC MODAL WINDOW Part 3