为了账号安全,请及时绑定邮箱和手机立即绑定

Unity Build 错误:当前上下文中不存在名称“EditorUtility”

Unity Build 错误:当前上下文中不存在名称“EditorUtility”

C#
慕慕森 2023-05-14 16:38:35
我有一个非常简单的问题。当我尝试统一构建游戏时出现构建错误。当我在编辑器中运行游戏时,它工作得很好。这是控制台中显示的错误。Assets\Scripts\Pattern.cs(284,17): error CS0103: The name 'EditorUtility' does not exist in the current context现在,这是错误引用的代码行:EditorUtility.DisplayDialog("Great!", "You got the pattern right!", "Next Level!");最后,如果您认为错误是我没有将正确的东西导入脚本,那您就错了,因为我导入了这个:using System.Linq;using System.Collections;using System.Collections.Generic;using UnityEngine;using System;using UnityEditor;有谁能够帮助我?先感谢您。编辑:执行此代码:#if UNITY_EDITOR            EditorUtility.DisplayDialog("Meh", "You got the pattern wrong ):", "Try Again!");#endif不起作用。在构建版本中,它只是不显示消息框,它的行为就好像这一行只是一条评论。有人可以帮忙吗?
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

你现在有错误的原因是,Unity 在编译时删除了他们为它设计的“UnityEditor”命名空间。这就是为什么当您尝试在平台上使用它时,“EditorUtility”将永远不会存在于除 UnityEditor 之外的任何平台上。因为“EditorUtility”在“UnityEditor”命名空间中。


因此,如果您想使用“EditorUtility”完成与在 Unity 编辑器中所做的相同的工作,您应该像他们一样自己实现它。


#if UNITY_EDITOR

    EditorUtility.DisplayDialog("Great!", "You got the pattern right!", "Next Level!");

#else

    YOUROWNCLASS.DisplayDialog("Great!", "You got the pattern right!", "Next Level!");

#endif


查看完整回答
反对 回复 2023-05-14
?
临摹微笑

TA贡献1982条经验 获得超2个赞

UnityEditor内容通常只能在编辑器中使用,因为在将游戏构建为独立 EXE 时不能使用它。

如果您实际上是为编辑器编译游戏,请尝试添加预处理器指令以包含与编辑器相关的内容。

#if UNITY_EDITOR
    EditorUtility.DisplayDialog("Great!", "You got the pattern right!", "Next Level!");
    #endif

正如@Retired Ninja 在评论中告诉我们的那样,您还需要#if UNITY_EDITOR ... #endif在您的行周围放置相同的指令。using UnityEditor;


查看完整回答
反对 回复 2023-05-14
  • 2 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信