Страница 1 из 1

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

СообщениеДобавлено: 07 апр 2016, 18:43
KBEP
Есть ли способ запихать файл/ассет в папку 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, и мне бы надо как-то добавить ассет в папку до этой генерации, но перед билдом. Подскажите что делать :-?

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

СообщениеДобавлено: 07 апр 2016, 19:47
DbIMok
обычно через меню. запускаем эдитор скрипт, который что-то делает перед билдом, билдит, что-то делает после

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

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

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

Собственно для чего делаю всё это, хочу запилить скрипт, чтобы можно было запрашивать из кода runtime есть ли в папке Resources ассет или нет, сейчас это не возможно, а было бы очень полезно.