我有Tiled2Unity插件。当我开始在Unity中构建我的游戏版本时,无论是独立版本还是其他任何东西,我都会收到以下错误:“构建播放器时出错,因为脚本在编辑器中存在编译错误”
然后它指向我这个班级
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEditor;
namespace Tiled2Unity
{
public class CircleObject : TmxObject
{
}
}
有人可以帮我弄清问题是什么?
答案 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问题了。