Страница 1 из 2
AssetBundles в Unity5.
Добавлено:
05 дек 2016, 22:53
Kondrator
Есть много объектов, добавленных в AssetBundles. Лежат построенные AssetBundles на сервере и качаются при старте приложения.
1) В таком случае нет смысла добавлять объекты AssetBundles в компиляюцию игры?
1.1) То есть, просто закинуть их в папку Editor?
2) Нормальная ли ситуация, что я кидаю почти всю игру в AssetBundles, а потом просто закачиваю при старте приложения?
3) Все AssetBundles, которые я загружаю с сервера, они сохраняются в папке кеша нужного приложения?
4) Возможен ли такой вариант, когда я загружаю AssetBundles тем самым заменяю ими префабы в самом приложении?
5) Все таки адвекатней будет способ 3 нежели 4 ?
P.S. разумеется загружаю либо с сервера либо с кеша.
Спасибо за помощь!
Re: AssetBundles в Unity5.
Добавлено:
06 дек 2016, 13:11
DbIMok
1) нет
1.1) зависит от того что нужно. можно хранить в любой папочке, например, Bundles
2) зависит от игры/платформы/способа монетизации и т.п.
3) если грузите через кэш. можете организовать свой кэш по своим правилам
4) не "заменяю префаб" а использую вместо. конечно можно
5) ну, наверное 3
Re: AssetBundles в Unity5.
Добавлено:
07 дек 2016, 23:11
Kondrator
Спасибо за ответ!
Есть еще вопрос...
Есть префаб, добавленный в AssetBundle. На префаб добавлен скрипт. Если я изменю часть скрипта, то:
1) При загрузке этого префаба все будет как нужно, то есть скрипт будет на нем измененный?
Предположим у меня несколько префабов(AssetBundles) с таким скриптом:
2) При использовании загрузки ассета из кеша/интернета (и при изменении такого сприпта) будет загружен ЗАНОГО каждый такой префаб с таким скриптом?
2.1) После первого загруженного префаба с таким скриптом (измененным), другие (с этим же скриптом) не будут загружаться, если они уже находятся в кеше (разумеется в них был изменен только "этот" скрипт)?
Re: AssetBundles в Unity5.
Добавлено:
08 дек 2016, 01:36
DbIMok
скрипты хранятся отдельно - в dll. так что скрипт будет измененный. что будет со значениями полей при их несовпадении с новым скриптом не знаю. проведите эксперимент. я предпочитаю хранить в бандлях только меши-текстуры.
кэш для вас ничего магически не сделает/не решит. с ним вообще все не просто (или наоборот, слишком просто, как посмотреть)
viewtopic.php?f=5&t=40966
Re: AssetBundles в Unity5.
Добавлено:
08 дек 2016, 08:44
Woolf
что будет со значениями полей при их несовпадении с новым скриптом не знаю
А ничего не будет. Те значения, которые старые в бандле - не просериализуются, а те, которые новые в скрипте - назначатся по умолчанию. Те, которые совпадают - прочитаются нормально. Я уже не раз сталкивался с таким поведением, считаю, что оно максимально адекватно ))
Кстати, все будет нормально работать, если скрипты даже из разных проектов (ну, в одном создаются бандли со скриптами, в другом читаются). Главное, чтобы имена скриптов и значений совпадали, а что там за внутренняя логика у них - бандлю не интересно. У меня так устроено - в редакторе локаций на скриптах стоит одна логика (с отображением отладочной инфы), а на проекте совсем другая, и всё стреляет
Re: AssetBundles в Unity5.
Добавлено:
09 дек 2016, 13:35
immeasurability
мне все как то не доводилось организовать эту систему бандлев, но сколько я сними не сталкивался, всегда был ответ, что нельзя в собранный проект допихнуть скрипты дополнительные
объясните если не затруднит, как так получается что можно бандлами скрипты новые подгружать Оо
это же получается что таким способом моды можно делать или я не прав?
Re: AssetBundles в Unity5.
Добавлено:
09 дек 2016, 14:30
DbIMok
скрипты в dll. в бандлях ассеты и значения полей тех скриптов, что на них висели.
Re: AssetBundles в Unity5.
Добавлено:
09 дек 2016, 15:01
immeasurability
DbIMok писал(а):скрипты в dll. в бандлях ассеты и значения полей тех скриптов, что на них висели.
получается что нового функционал добавить нельзя? правильно я понял?
Re: AssetBundles в Unity5.
Добавлено:
09 дек 2016, 15:08
DbIMok
почему же? добавить dll, бандлей, вот и новый функционал
Re: AssetBundles в Unity5.
Добавлено:
09 дек 2016, 17:50
Kondrator
Всем спасибо за ответы!
Подскажите еще вопросик c:
Вопрос касательно кеша от AssetBundles.
Есть ассет на сервере, я его качаю через метод LoadCacheOrDownload и соответственно он загружается в кеш. При следующей загрузки он берет его из кеша.
Далее я изменяю ассет бандл. Снова его качаю из приложения (разумеется он проверяет, что объект изменен и произойдет загрука):
1) Старый хеш ассета будет удалён / останется без изменений / заменится?
2) Является ли кеш "ценным", то есть не может ли он быть удален ОС по какой либо его причине надобности / ненадобности? (именно ОС, а не пользователем)
Re: AssetBundles в Unity5.
Добавлено:
09 дек 2016, 18:09
DbIMok
https://docs.unity3d.com/ScriptReference/Caching.html1) скорее всего будет удален, т.к. зачем он старый?
2) система (какая из овер 20?) ничего про кэш не знает
Re: AssetBundles в Unity5.
Добавлено:
12 дек 2016, 22:54
Kondrator
Еще раз спасибо за ответы!!!
Есть еще вопрос)
Есть сцена, добавленная в AssetBundle. На сцене есть три (например) объекта, тоже добавленных в AssetBundle.
Если я сначала скачаю ассеты объектов на сцене, а после начну скачивать ассет сцены:
Будут ли повторно закачаны ассеты объектов на сцене?
Re: AssetBundles в Unity5.
Добавлено:
13 дек 2016, 08:06
DbIMok
Конечно будут. Любой каприз за ваши деньги. Как сделаете, так и будет работать
Re: AssetBundles в Unity5.
Добавлено:
08 янв 2017, 22:04
Kondrator
Здравствуйте еще раз!
Если мне необходимо использовать проект для Standalone, Andoid, iPhone, то мне нужно строить бандлы для?:
StandaloneWindows
StandaloneWindows64
StandaloneLinux
StandaloneLinux64
StandaloneLinuxUniversal
StandaloneOSXIntel
StandaloneOSXIntel64
StandaloneOSXUniversal
Android
iOS
Быть может что-то является лишним и его можно исключить?
Здесь платформы построений бандлов:
https://docs.unity3d.com/ScriptReferenc ... arget.html (тут есть 64 и универсал)
Здесь #define:
https://docs.unity3d.com/Manual/Platfor ... ation.html (нет ни 64, ни универсал)
Здесь RuntimePlatform:
https://docs.unity3d.com/ScriptReferenc ... tform.html (нет ни 64, ни универсал)
Re: AssetBundles в Unity5.
Добавлено:
09 янв 2017, 00:21
beatlecore
Kondrator писал(а):StandaloneWindows
StandaloneWindows64
StandaloneLinux
StandaloneLinux64
StandaloneLinuxUniversal
StandaloneOSXIntel
StandaloneOSXIntel64
StandaloneOSXUniversal
можно для всех этих платформ одни и те же бандлы юзать