#unity3d #build
#unity3d #сборка
Вопрос:
Когда я пытаюсь создать свою игру, Unity включает скрипты, содержащиеся в моих каталогах редактора. Это подразумевает сбой сборки из-за Unity.Редактор недоступен во время сборки. Я использую Unity 2020.1.6f1, как я могу решить эту проблему?
Это тип ошибки, которую я получаю во время сборки:
Assets Scripts Editor EnemyLootEditor.cs(7,32): ошибка CS0246: не удалось найти тип или имя пространства имен «Editor» (вам не хватает директивы using или ссылки на сборку?)
Эти ошибки не возникают, когда игра запускается в режиме редактора.
Это изображение моей папки Scripts, которая содержит все мои файлы кода, включая файлы редактора:
Ответ №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 . Это может объяснить мои ошибки?