You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中EditorUtility.DisplayDialog在独立构建中无法正常工作

问题原因分析

嘿,我一眼就瞅出问题所在啦!你这段代码里的对话框之所以只在Unity编辑器里弹得出来,到Windows应用里就没影了,核心原因是那个#if UNITY_EDITOR预编译指令——它把EditorUtility.DisplayDialog这段代码给限制死了,只有在编辑器环境下才会编译执行,等你把项目构建成Windows应用后,这段代码根本不会被打包进去,自然就没对话框啦!

解决方案

根据你的需求,我给你两种可行的处理方式:

方式一:跨平台通用的自定义UI对话框(推荐)

如果你的应用需要跨平台,或者想保持界面风格统一,最好自己制作一个UI对话框(用Unity的UGUI系统):

  • 在场景里创建一个包含文本、按钮的弹窗UI,默认设置为隐藏
  • 当需要弹出提示时,调用代码显示这个UI,并给按钮绑定关闭逻辑
  • 替换掉原来的EditorUtility.DisplayDialog代码,改成显示自定义UI的逻辑

示例代码片段:

// 假设你已经提前引用了自定义弹窗的组件
public GameObject customDialog;

public void continueAgents() { 
    Application.OpenURL("Some link"); 
    // 显示自定义弹窗
    customDialog.SetActive(true);
    // 后续逻辑...
    Drv.changeCondition(); 
    coopAgentID = 5; 
    if (participantID[coopAgentID] == 'c') 
        coopAgent = 21; 
    else 
        coopAgent = 81; 
    cond = 2; 
    Obj = GameObject.Find("ScriptHolder"); 
    SA = Obj.GetComponent<switchAnimation>();
}

方式二:Windows平台专属的系统消息框

如果你的应用只针对Windows平台,可以调用Windows系统自带的消息框:

  1. 打开Unity的Player Settings,把API Compatibility Level设置为.NET Framework(不要选.NET Core)
  2. 在代码顶部添加引用:using System.Windows.Forms;
  3. 修改原代码,用系统消息框替换编辑器专属的对话框,同时保留编辑器环境的逻辑:
using System.Windows.Forms; // 新增引用
using UnityEditor; // 编辑器相关引用,记得保留

public void continueAgents() { 
    Application.OpenURL("Some link"); 
    #if UNITY_EDITOR
        EditorUtility.DisplayDialog("Wait!", "Please complete the survey first!", "Ok"); 
    #else
        // Windows平台下显示系统消息框
        MessageBox.Show("Please complete the survey first!", "Wait!", MessageBoxButtons.OK);
    #endif
    // 后续逻辑不变
    Drv.changeCondition(); 
    coopAgentID = 5; 
    if (participantID[coopAgentID] == 'c') 
        coopAgent = 21; 
    else 
        coopAgent = 81; 
    cond = 2; 
    Obj = GameObject.Find("ScriptHolder"); 
    SA = Obj.GetComponent<switchAnimation>();
}
额外小提示

GameObject.Find("ScriptHolder")在构建后的应用里可能会有性能损耗,建议你在场景加载时提前通过拖拽赋值的方式引用这个对象,或者用[SerializeField]标记变量,避免运行时查找。

内容的提问来源于stack exchange,提问作者Reza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:25:53