Size: a a a

2020 May 31

МР

Михаил Рыбкин... in unity3d.ru
Rokko Effe
Решил. Мне надо было не сохранять значения переменных после выхода с игры. Решается тэгом [NonSerializable] на нужных полях
Стесняюсь спросить: а с каких пор в СОшниках сохраняются значения по умолчанию?
источник

RE

Rokko Effe in unity3d.ru
Михаил Рыбкин
Стесняюсь спросить: а с каких пор в СОшниках сохраняются значения по умолчанию?
Я менял значения в рантайме и после выхода из игры они сохранялись, мне это не подошло
источник

МР

Михаил Рыбкин... in unity3d.ru
Я не уверен, но вроде так не должно работать.
источник

RE

Rokko Effe in unity3d.ru
Михаил Рыбкин
Я не уверен, но вроде так не должно работать.
Так работает, я проверил) и это логично. Создаёшь экземпляр, вписываешь свои значения и они там навсегда сохраняются. Это как вечноживущий экземпляр класса
источник

МР

Михаил Рыбкин... in unity3d.ru
И ещё одно. СОшники, в первую очередь сделаны в качестве модели данных, а не места сохранения.
источник

МР

Михаил Рыбкин... in unity3d.ru
Rokko Effe
Так работает, я проверил) и это логично. Создаёшь экземпляр, вписываешь свои значения и они там навсегда сохраняются. Это как вечноживущий экземпляр класса
Так что это как раз и не логично
источник

RE

Rokko Effe in unity3d.ru
Михаил Рыбкин
И ещё одно. СОшники, в первую очередь сделаны в качестве модели данных, а не места сохранения.
После этого даже подумал, а почему никто не делает систему сохранения, основанную на scriptable object
источник

NP

Nicolai Posmac in unity3d.ru
Rokko Effe
После этого даже подумал, а почему никто не делает систему сохранения, основанную на scriptable object
А значения в SO можно меня через скрипт?)
источник

RE

Rokko Effe in unity3d.ru
Nicolai Posmac
А значения в SO можно меня через скрипт?)
Ну конечно, значения экземпляра
источник

RE

Rokko Effe in unity3d.ru
СО - это просто класс, экземпляр которого создаётся при создании файла СО и удаляется только при удалении файла СО
источник

RE

Rokko Effe in unity3d.ru
Не считая случаев, когда его экземпляр создают в коде, но я даже не понимаю, зачем так делать
источник

KE

Kirill Ertilov in unity3d.ru
Nicolai Posmac
А значения в SO можно меня через скрипт?)
SO для масштабности и избавления от повторений данных ненужных, как хранение игровых сохранение и прочее вообще не подходит
источник

RE

Rokko Effe in unity3d.ru
Я их вообще юзаю для хранения данных объектов, вместо хранения этих данных в префабах. И ещё всякие конфиги и настройки
источник

МР

Михаил Рыбкин... in unity3d.ru
А как вы обращаетесь к СОшнику? По ссылке или Resources.Load<>()?
источник

NP

Nicolai Posmac in unity3d.ru
Я знаю что такое со) но Яне менял значения экземпляра через код, а использовал значения прописанные там
источник

RE

Rokko Effe in unity3d.ru
Михаил Рыбкин
А как вы обращаетесь к СОшнику? По ссылке или Resources.Load<>()?
По ссылке, потому что например, я могу сделать несколько конфигов какого-то объекта на сцене и указывать ссылку на конкретный конфиг, который я к нему хочу применить
источник

E

Evgeny in unity3d.ru
Михаил Рыбкин
И по тэгам сравнивать в 21 веке моветон. Уже давно существуют интерфейсы и абстрактные классы.
А почему теги плохо?)
источник

RE

Rokko Effe in unity3d.ru
Evgeny
А почему теги плохо?)
Например, потому что это неявное указание, их можно случайно где-то поменять и потом долго дебажить какой-нибудь случайный баг
источник

RE

Rokko Effe in unity3d.ru
Разве что все тэги указывать в каком-нибудь scriptable object и обращаться к ним через него
источник

RE

Rokko Effe in unity3d.ru
Типа if (collider.tag == MySO.PlayerTag)
источник