Создание ассета до билда.

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

Создание ассета до билда.

Сообщение KBEP 07 апр 2016, 18:43

Есть ли способ запихать файл/ассет в папку Asset/Resources перед билдом проекта? Сейчас так делаю:
Синтаксис:
Используется csharp
[PostProcessBuildAttribute(int.MinValue)]//смена значения не помогла
        public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject)
        {
                if ( ! Save()) Debug.Log("ERROR: Failed to save file tree.");
                //AssetDatabase.Refresh();//это тоже не помогло
        }
Функция Save просто создает текстовой файл и пихает его в папку Resources. Она работает - файл появляется в Project View, но загрузить этот файл в билде через Resources.Load не получается. Т. е. файл добавляется, но уже после того как проект сбилдится. Я так понял Юнити генерирует список ассетов в папке Resources, и мне бы надо как-то добавить ассет в папку до этой генерации, но перед билдом. Подскажите что делать :-?
Аватара пользователя
KBEP
Старожил
 
Сообщения: 598
Зарегистрирован: 24 сен 2012, 23:23
Откуда: Калининград, СПб, Северодвинск

Re: Создание ассета до билда.

Сообщение DbIMok 07 апр 2016, 19:47

обычно через меню. запускаем эдитор скрипт, который что-то делает перед билдом, билдит, что-то делает после
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Создание ассета до билда.

Сообщение KBEP 08 апр 2016, 03:08

Ну вот хотелось этого избежать, вдруг забудешь нажать, а билд в любом случае соберётся, только не корректный. Сейчас вот так сделал:
Синтаксис:
Используется csharp
[PostProcessSceneAttribute (int.MinValue)]
public static void OnPostprocessScene()
{
        if ( ! Save()) Debug.Log("ERROR: Failed to save file tree.");
        AssetDatabase.Refresh();
}

Вроде нормально, только боюсь что если будут ещё какие сторонние скрипты у которых порядок атрибута будет такой же (int.MinValue), и эти скрипты будут что-то там добавлять в папку ассетов, то в билд ассеты всё равно не попадут.

Собственно для чего делаю всё это, хочу запилить скрипт, чтобы можно было запрашивать из кода runtime есть ли в папке Resources ассет или нет, сейчас это не возможно, а было бы очень полезно.
Аватара пользователя
KBEP
Старожил
 
Сообщения: 598
Зарегистрирован: 24 сен 2012, 23:23
Откуда: Калининград, СПб, Северодвинск


Вернуться в Editor

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1