5
votes

I have the Tiled2Unity plugin. When I begin to build a version of my game in Unity, be it standalone version or anything else,i get the following error, "Error building Player because scripts have compile errors in the editor"

Then it points me to this class

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

using UnityEditor;

namespace Tiled2Unity
{
    public class CircleObject : TmxObject
    {
    }
}

Can someone please help me figure out what is the problem?

2

2 Answers

11
votes

You cannot build any your script that contains using UnityEditor; or class/API from the UnityEditor namespace. This is why you should put any script that contains any of these in a folder called Editor.

When Unity is building your project, it ignores any script placed in this folder since it considers them as an Editor script or plugin.

You have three choices:

  1. Remove using UnityEditor; from your script.

  2. Place your script in a folder called Editor.

  3. Use Unity's preprocessor directive to determie when not to compile with using UnityEditor;

    You can do that by replacing:

     using UnityEditor;
    

    with

     #if UNITY_EDITOR 
     using UnityEditor;
     #endif 
    

I would go with #2. Create a different script for any Editor stuff and place it in the Editor folder. Note that Unity will not compile any script in this folder when building your project. Scripts in this folder are meant to run in the Editor only.

0
votes

I was having the same problem however easily found a fix.

Go into every Script you have in that unity project and double check the first lines, the ones which say "Using UnityEngine" and "Unity System Collections". I had only added to these lines with a "Using UnityEngine.UI" however when I was going through ALL my scripts for that project I found that there a few extra ones there that weren't there when I started and I had not added (they added themselves there) , for example there was a "Using System Collections XMP" or something random like that. Simply delete these, save the script and you should be good to go.

I have no idea why they are there and what type of problem they seemed to cause however I can now build my project to android problem free now.