创建对话框/弹出窗口

有这样的代码

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

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

任何包含“Editor”一词或来自UnityEditor命名空间的Unity类都意味着class仅设计用于编辑器,并且只能在编辑器中使用。 所以EditorUtility仅适用于Unity Editor。

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

例如,这是你的对话框:

 public GameObject dialoguePanel; 

显示UI面板的对话框

 dialoguePanel.SetActive(true); 

要隐藏它:

 dialoguePanel.SetActive(false); 

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

如果您仍然无法实现模态窗口 ,请按照下面的教程 ,因为这正是您所需要的。

通用模态窗口的Unity教程:

制作一个通用的模态窗口第1部分

制作通用模块窗口第2部分

制作一个通用的模态窗口第3部分