Почему Unity включает каталоги редактора в сборку

#unity3d #build

#unity3d #сборка

Вопрос:

Когда я пытаюсь создать свою игру, Unity включает скрипты, содержащиеся в моих каталогах редактора. Это подразумевает сбой сборки из-за Unity.Редактор недоступен во время сборки. Я использую Unity 2020.1.6f1, как я могу решить эту проблему?

Это тип ошибки, которую я получаю во время сборки:

Assets Scripts Editor EnemyLootEditor.cs(7,32): ошибка CS0246: не удалось найти тип или имя пространства имен «Editor» (вам не хватает директивы using или ссылки на сборку?)

Эти ошибки не возникают, когда игра запускается в режиме редактора.

Это изображение моей папки Scripts, которая содержит все мои файлы кода, включая файлы редактора:

1

Ответ №1:

Как говорит @Thomas, да, вы должны проверить, что ваши файлы редактора хранятся в каталоге Editor, и использовать директиву компилятора при их использовании.

НО эта проблема, похоже, больше связана с файлами определения сборки, проверьте эту соответствующую ссылку.

Используете ли вы файлы определения сборки? Они не уважают папки редактора. Вам нужно добавить ссылки редактора asmdefs.

Подводя итог, если у вас есть один файл .asmdef в вашем проекте, и вы используете скрипты редактора, вам также необходимо иметь файл .asmdef для ваших скриптов редактора.

Комментарии:

1. Спасибо, теперь все работает нормально! Короче говоря, мне пришлось создать новый файл определения сборки в моей папке редактора : файл EditorAssembly . Затем я добавляю свой файл GameAssembly к ссылкам на EditorAssembly и, наконец, я добавил к нему ограничение UNITY_EDITOR .

Ответ №2:

Файлы, хранящиеся в папке с именем «Editor», не включаются в сборки. (см. Специальные имена папок в unity)

Если вы выполняете вызовы кода редактора в «обычных» файлах сценариев, вы должны окружить этот код директивой UNITY_EDITOR компилятора:

 #if UNITY_EDITOR
// will not be present in build
[...]
#endif
  

Комментарии:

1. или поместите свои файлы в папку редактора

2. @Lotan В этом проблема, эти скрипты находятся в каталоге редактора . Я знаю, что они не должны быть частью сборки, но так или иначе это происходит.

3. @DeWolfMaxime у вас есть какой-нибудь файл сборки?

4. @Lotan Да, у меня есть файл сборки в базе моей папки Scripts , и в нем находится моя папка Editor . Это может объяснить мои ошибки?