Unity Asset Bundle

Общие вопросы о Unity3D

Unity Asset Bundle

Сообщение Vogd 18 апр 2018, 14:45

Привет!

Помогите пожалуйста разобраться с дозагрузкой ресурсов пожалуйста.

1) Если ассет отмечен для бандла, он продолжает добавлятся в билд и его нужно самому удалять или нет?
2) Если ассет используется в префабах, а я пихаю его в бандл он после загрузки бандла сам встанет на место или все сложнее?
3) Как бандл отработает если текстура отмечена для добавления в атлас? Юнити сделает атлас и его пихнет в бандл или нет?

Как вообще правильно организовать работу с этой фичой? У меня есть отдельные локации, которые я хочу загружать по мере прохождения предыдущих, что делать?

Спасибо!
Vogd
UNIт
 
Сообщения: 55
Зарегистрирован: 04 май 2016, 15:46

Re: Unity Asset Bundle

Сообщение IDoNotExist 18 апр 2018, 16:20

Vogd писал(а):1) Если ассет отмечен для бандла, он продолжает добавлятся в билд и его нужно самому удалять или нет?

Если ты явно пихаешь префаб в сцену использующуюся в билде, то префаб соответственно попадёт в билд.

Vogd писал(а):2) Если ассет используется в префабах, а я пихаю его в бандл он после загрузки бандла сам встанет на место или все сложнее?

Из коробки ты сам руками должен контроллировать, что у тебя и куда будет загружаться из бандлей. Но возможно на ассет сторе есть какие нибудь готвые решения.

Vogd писал(а):3) Как бандл отработает если текстура отмечена для добавления в атлас? Юнити сделает атлас и его пихнет в бандл или нет?

Что значит отмечена для добавления в атлас? У тебя должен быть атлас как ассет, добавляй его в бандл и всё.

Vogd писал(а):Как вообще правильно организовать работу с этой фичой? У меня есть отдельные локации, которые я хочу загружать по мере прохождения предыдущих, что делать?

Самый простой способ - это паковать каждую локацию в отдельную сцену, а потом просто делать бандли из сцен.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Unity Asset Bundle

Сообщение Vogd 18 апр 2018, 17:18

IDoNotExist

Т.е. если сцену пихнуть в бандл, то она не будет добавлятся в билд вместе с текстурами которые там используются?
А что произойдет с префабами в этой сцене, которые так же используются в предыдущих сценах, которые не в бандле?
Vogd
UNIт
 
Сообщения: 55
Зарегистрирован: 04 май 2016, 15:46

Re: Unity Asset Bundle

Сообщение irondrew 18 апр 2018, 18:20

Vogd писал(а):3) Как бандл отработает если текстура отмечена для добавления в атлас? Юнити сделает атлас и его пихнет в бандл или нет?


Юнити сама не пихнет атлас в бандл. Можно его либо руками добавить, либо прикрепить к сцене/ассету через скрипит.
Но связи между атласом и спрайтами на сцене/префабе уже не будет.

Чтобы связь восстановить вот скрипт.

Синтаксис:
Используется csharp
public class MasterAtlas : MonoBehaviour{
        public SpriteAtlas[] atlas;

        void Awake()
        {
                DontDestroyOnLoad(this);
        }
        void OnEnable()
        {
                SpriteAtlasManager.atlasRequested += RequestAtlas;
        }

        void OnDisable()
        {
                SpriteAtlasManager.atlasRequested -= RequestAtlas;
        }


        void RequestAtlas(string tag, System.Action<SpriteAtlas> callback)
        {
                for(int i = 0; i < atlas.Length; i++)
                if(atlas[i] != null)
                {
                        if(atlas[i].name == tag)
                        {
                                        Debug.Log("callback" + atlas[i].name);
                                        callback(atlas[i]);
                                        break;
                        }
                }
        }
}
 
irondrew
UNITрон
 
Сообщения: 157
Зарегистрирован: 24 фев 2013, 19:06

Re: Unity Asset Bundle

Сообщение irondrew 18 апр 2018, 18:25

Vogd писал(а):Т.е. если сцену пихнуть в бандл, то она не будет добавлятся в билд вместе с текстурами которые там используются?
А что произойдет с префабами в этой сцене, которые так же используются в предыдущих сценах, которые не в бандле?


Сцена не будет добавляться в билд, если убрать ее в BuildSettings.
Если префабы не в отдельном бандле, то они копирнутся и будут занимать лишнее место.
Поэтому, если что-то используется в нескольких местах, то лучше это класть в отдельный ассет.
irondrew
UNITрон
 
Сообщения: 157
Зарегистрирован: 24 фев 2013, 19:06


Вернуться в Общие вопросы

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

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