构建项目时出错:构建Player时出错,因为脚本在编辑器中存在编译错误

时间:2017-03-03 21:26:40

标签: c# unity3d tiled

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

然后它指向我这个班级

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

using UnityEditor;

namespace Tiled2Unity
{
    public class CircleObject : TmxObject
    {
    }
}

有人可以帮我弄清问题是什么?

2 个答案:

答案 0 :(得分:8)

无法构建包含using UnityEditor;UnityEditor命名空间中的类/ API的任何脚本。这就是为什么你应该把任何包含这些脚本的脚本放在一个名为 Editor 的文件夹中。

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

您有三种选择:

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

2 。将您的脚本放在名为编辑器的文件夹中。

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

您可以通过替换:

来实现
using UnityEditor;

#if UNITY_EDITOR 
using UnityEditor;
#endif 

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

答案 1 :(得分:0)

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

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

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