Как сериализовать адрес префаба для сохранения/загрузки игры

Программирование на Юнити.

Как сериализовать адрес префаба для сохранения/загрузки игры

Сообщение Инженер 10 апр 2020, 17:53

Я использую Addressables. Как сериализовать адрес префаба, чтобы использовать его в системе сохранения/загрузки игры? Я думал, что могу сохранять адрес как string, но при попытке заспаунить объект, мне выдается ошибка:

error CS1503: Argument 1: cannot convert from 'string' to 'UnityEngine.ResourceManagement.ResourceLocations.IResourceLocation'

Я загружаю объект следующим образом (objData.prefabAddress - это string с именем префаба, например, "Vehicle1"):

Синтаксис:
Используется csharp
Addressables.InstantiateAsync (objData.prefabAddress, pos, rot).Completed + = handle =>
{
    DoSomething(handle.Result, objData);
};
Инженер
UNIт
 
Сообщения: 88
Зарегистрирован: 22 май 2016, 11:13

Re: Как сериализовать адрес префаба для сохранения/загрузки игры

Сообщение Jarico 10 апр 2020, 18:11

Когда помечаешь ассет как Addresable его имя становится путём до ассета

К примеру у меня есть Soldier1 который находится в папке Assets/Content/Models, я пометил его как Addresable и его имя в Addresable стало Assets/Content/Models/Soldier1

Просто измени имя (не объекта) а ссылку на него...
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Как сериализовать адрес префаба для сохранения/загрузки игры

Сообщение Инженер 10 апр 2020, 19:59

Jarico писал(а):Просто измени имя (не объекта) а ссылку на него...


Откуда я возьму ссылку на префаб? Можно конечно ее вписать вручную в строку string и оставить в компоненте объекта, чтобы при необходимости ее оттуда прочитать, но это же будет все тот же string, который не является объектом IResourceLocation или чем там ругается Юнити.
Инженер
UNIт
 
Сообщения: 88
Зарегистрирован: 22 май 2016, 11:13

Re: Как сериализовать адрес префаба для сохранения/загрузки игры

Сообщение Инженер 11 апр 2020, 17:17

В общем, я решил тупо отказаться от Addressables и перешел на Recoures.Load("путь к префабу"). String принимаются без проблем, я могу сериализовать путь к префабу в файл сохранения в виде string, а Addressables какая-то замороченная система, не позволяющая мне это сделать. Особенно вредит, что Scripting API куцый, даже не всегда понятное описание и примеров нет.
Инженер
UNIт
 
Сообщения: 88
Зарегистрирован: 22 май 2016, 11:13


Вернуться в Скрипты

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

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