【问题标题】:Error when Building Project: Error building Player because scripts have compile errors in the editor构建项目时出错:构建播放器时出错,因为脚本在编辑器中存在编译错误
【发布时间】:2017-07-24 03:27:04
【问题描述】:

我有 Tiled2Unity 插件。当我开始在 Unity 中构建我的游戏版本时,无论是独立版本还是其他任何版本,我都会收到以下错误“构建播放器时出错,因为脚本在编辑器中存在编译错误”

然后它指向我这个类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using UnityEditor;

namespace Tiled2Unity
{
    public class CircleObject : TmxObject
    {
    }
}

有人可以帮我找出问题所在吗?

【问题讨论】:

    标签: c# unity3d tiled


    【解决方案1】:

    不能构建任何包含using UnityEditor; 或来自UnityEditor 命名空间的类/API 的脚本。这就是为什么您应该将包含任何这些的任何脚本放在一个名为 Editor 的文件夹中。

    当 Unity 构建您的项目时,它会忽略放置在此文件夹中的任何脚本,因为它将它们视为编辑器脚本或插件。

    你有三个选择:

    1. 从您的脚本中删除 using UnityEditor;

    2. 将您的脚本放在一个名为Editor的文件夹中。

    3. 使用 Unity 的预处理器指令确定何时不使用 using UnityEditor; 进行编译

      您可以通过替换来做到这一点:

       using UnityEditor;
      

       #if UNITY_EDITOR 
       using UnityEditor;
       #endif 
      

    我会选择 #2。为任何编辑器内容创建一个不同的脚本并将其放置在 Editor 文件夹中。请注意,Unity 在构建项目时不会编译此文件夹中的任何脚本。此文件夹中的脚本只能在编辑器中运行。

    【讨论】:

    • 如何判断我的代码的任何其他部分是否包含该脚本?该特定脚本是通过 Tiled2Unity 导入 Unity 的。
    • 我不知道Tiled2Unity 脚本是什么,但总是尝试编写自己的代码,而不是导入其他人编写的脚本。当您可以在编辑器中运行它但不能构建它时,您就知道这是问题所在。因此,您必须查看其他脚本并将其删除。如果它构建得很好,那么它们都消失了!
    【解决方案2】:

    我遇到了同样的问题,但是很容易找到解决方法。

    进入您在该统一项目中拥有的每个脚本并仔细检查第一行,即“使用 UnityEngine”和“Unity 系统集合”的那些。我只使用“使用 UnityEngine.UI”添加到这些行中,但是当我浏览该项目的所有脚本时,我发现有一些额外的脚本在我开始时不存在并且我没有添加(他们在那里添加了自己),例如有一个“使用系统集合 XMP”或类似的随机内容。只需删除这些,保存脚本就可以了。

    我不知道他们为什么在那里以及他们似乎造成了什么类型的问题,但是我现在可以将我的项目构建为 android 问题。

    【讨论】:

    • 那么,您认为编辑器中可能隐藏了一个非法字符。你是在外部编辑器还是统一编辑它们?
    猜你喜欢
    • 1970-01-01
    • 2020-08-24
    • 2020-09-01
    • 2018-03-13
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多