Загрузка активов из пакетов активов для доставки игровых активов в Unity

#c# #android #unity3d #assetbundle #android-asset-delivery

Вопрос:

В настоящее время я поддерживаю старый проект, в котором мне бы очень хотелось сохранить старый код и избежать рефакторинга старого кода, если это возможно. Чтобы загрузить его в Google Play Store, я использовал систему play asset delivery PAD, для которой требуется система комплектов активов.

Я могу успешно загружать пакеты активов асинхронным способом с помощью сопрограмм, следующих учебным пособиям.

Мой вопрос заключается в следующем: возможно ли получить доступ к связанным активам без изменения первоначального способа доступа, такого как

 UnityEditor.AssetDatabase.LoadAssetAtPath("Assets/Prefabs/Game/Tiles/Tile.prefab", typeof(Tile)) as Tile;
 

вместо реализации следующего кода?

 var assets = AssetDatabase.FindAssets("t:Sprite", 
        new[] {"Assets/Images"});
    foreach (var guid in assets) 
    {
        string assetPath = AssetDatabase.GUIDToAssetPath(guid);
        Sprite loadedSprite = null;
        if (imageDictionary.TryGetValue(assetPath, out loadedSprite) 
            == false)
        {
            loadedSprite = AssetDatabase.LoadAssetAtPath<Sprite>(
                assetPath);
            if (loadedSprite != null)
            {
                imageDictionary.Add(assetPath, loadedSprite);
                AddImageToList(assetPath, loadedSprite);       
            }
        }
    }
 

В настоящее время я использую 2 пакета ресурсов, состоящих из папок с текстурой и анимацией позвоночника.Я создал 2 пакета ресурсов, которые являются папкой текстур (110 МБ) и пакетом анимации позвоночника (23 МБ) и базовым ресурсом. Когда я создал файл aab, размер файла увеличился до 370 МБ.
(Я знаю, что мне нужно разделить свои пакеты, чтобы соответствовать требованиям Play Store к 150 МБ для базовых ресурсов, но это другая проблема.)

И кроме того, мое обоснованное предположение состоит в том, что unity не только добавляет пакеты активов, но и добавляет активы старомодным способом, что может быть связано с этим вопросом.

Ответ №1:

Я тоже столкнулся с той же проблемой. Первоначально созданный файл AAB превышал 150 МБ и не мог быть загружен в хранилище. Но я нашел способ загрузить.

приказ

  1. Поместите сцену сборки в раздел «Настройка файлов — Сцена сборки в сборке».
  2. Проверьте «Сборка пакета приложений» в разделе «Набор файлов».
  3. Закройте набор настроек и нажмите «Сборка пакета приложений Google для Android». (В этом процессе я не создавал пакет активов. Я использовал оригинальную программу в том виде, в каком она была)
  4. Игнорируйте сигнал тревоги большого размера в середине сборки.
  5. Когда сборка будет завершена, размер будет больше 150 МБ. Не беспокойтесь о размере файла сборки и загрузите его в консоль Google.

«Google — Сборка пакета приложений для Android» Файл, созданный с помощью этого, увеличивается. Я надеюсь, что проблема будет решена.