DbIMok писал(а):так это не проблема. получите список, подгрузите новые текстурки и замените ими старые, профит! да, что-то я умолчал о третьем, подходящем не для всех ресурсов пути: прямой подгрузки через www/файловые операции.
Насколько я понимаю, в этом случае сначала загрузиться то, что было изначально в ресурсах, а потом замениться на новую. Двойная работа.
Возьмем пример AssetBundles. Там отдельно в бандлы выгружаются и моделька и используемая ей текстура. Казалось бы все хорошо. Но вот захотели мы изменить текстуру, изменили ее настройки, выгрузили в бандл и подложили в предыдущий клиент и... текстура не подгрузилась. То есть чтобы изменить текстуру, надо еще выгрузить и модельку. Или после загрузки модели посмотреть, если текстура в отдельном файле, загрузить ее и прицепить к модели. Этот вариант плох также тем, что все ресурсы лежат в отдельных файлах (это получается тысячи их).
Что хотелось бы в идеале - иметь некий формат пак-файлов (типа как mpq в играх Близзарда). Пусть это будет asset bundles (unity3d), или еще что-то, не важно. Иметь возможность указать движку, в каком приоритете грузить ресурсы из этих пак файлов (например, в первую очередь посмотреть в файле patch.unity3d, если там ресурса нет, грузить из стандартного). Причем без изменения в патче тех ресурсов, которые ссылаются на измененный ресурс. Например, вот очень надо изменить настройки всех материалов в игре. Взяли, создали patch.unity3d, куда поместили все материалы игры, отдали игрокам (а получился патч очень небольшого размера, файлы материалов же мелкие) - и все. Игра подцепила новые материалы. Максимум, что может потребоваться - еще и скрипты в патч добавить, а они тоже небольшие. Но похоже, так сделать нельзя. Это получиться, только если изначально все объекты в сценах создавать руками из кода (при этом мы сами можем вставить проверку на наличие патча и грузить из него). Этот способ сразу отметает создание сцены в редакторе юнити. Или можно создавать в редакторе, но потом натравить некий скрипт, который выгрузит сцену в какой-либо наш формат, которую игра и создаст, грузя ассеты вручную, из нужных мест... Плохо тем, что разработчики и игроки используют сильно разные версии игры, чревато дополнительными ошибками. И еще пока непонятно, можно ли подключить свой пак-архив (например, на основе того-же zlib), чтобы все файлы ресурсов не лежали по отдельности...
Neodrop писал(а):Любая программа создания бинарных патчей вполне подходит. К примеру - PatchWise Free.
Но при этом, насколько я понимаю, не предсказуем размер патча, так как все зависит от того, как юнити создаст тот же sharedassets0.assets (сколько там будет различий? какой получится дифф-файл? Я не знаю, так как пока нигде не встретил принцип создания sharedassets0.assets, по которому можно было-бы строить какие-то предположения).