Суббота, 20 Апреля 2024, 00:45

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Чем Scriptable Object отличается от скрипта с префабом
Чем Scriptable Object отличается от скрипта с префабом
alexsilentДата: Среда, 16 Сентября 2020, 16:44 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Думаю, стоит ли изучать SO (Scriptable Object), и в связи с этим вопросы:

1) Есть ли какое то преимущество у Scriptable Object по сравнению с обычным скриптом с префабом?
Данные можно хранить и в обычном скрипте закрепив за префабом, так это всё отличие от Scriptable Object,
то что SO не нужен дополнительный пустой префаб или есть ещё фишки?

2) Также думаю, можно ли как-то хранить данные здоровье, кастомизацию и прочее для всех NPC в игре,
а также вещи во всех контейнерах мира в SO?!
Удаляются ли SO при перезагрузки уровня?
Можно ли менять данные SO в течении игровой сессии, чтобы там переменные были изменены до остановки игры?
PS Хотя это всё можно сделать и с обычным инстанс префаба со скриптом с данными, с галочкой DontDestroyOnLoad,
но всё же интересно что может SO


Сообщение отредактировал alexsilent - Среда, 16 Сентября 2020, 16:53
AndrewNovakДата: Четверг, 17 Сентября 2020, 09:25 | Сообщение # 2
почетный гость
Сейчас нет на сайте
1. Эти 2 подхода имеют место жить.

+ SO меньше жрут чем monobeh + префаб.
+ Легко подменять
+ Очень хорошо подходят для конфигов и парсинга данных из вне

- Неудобная вложенность и то, первого уровня.
- Не ресетятся в эдиторе.
- Можно напороться на дублирование
- Тяжело проследить рефы и дебажить при нескольких копиях.

2. Хранить можно, но если для каждого NPC свой SO то у тебя будет очень много дублирований
SO удаляются после закрытия игры. В едиторе измененные значения остаются после выхода из плеймода.

В общем очень хорошо подходят для какой то группы статичных данных, аля диалог, или квест или скины.
Для динамики чуть посложнее.


COLD DEPTH Steam
PUSS!
COLD DEPTH
drcrackДата: Четверг, 17 Сентября 2020, 10:01 | Сообщение # 3
старожил
Сейчас нет на сайте
Я хотел было ответить, но понял что сам не знаю
Загуглил — все равно не нашел внятного разбора
Все перечисляют одни и те же малозначащие различия типо "Легко подменять" (см. предыдующий пост)
Это все нам как бы говорит о том, что разница хоть и есть, она мало на что влияет и можешь делать так, как удобно
PS Я использую SO


Сообщение отредактировал drcrack - Четверг, 17 Сентября 2020, 10:02
alexsilentДата: Четверг, 17 Сентября 2020, 10:16 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Цитата AndrewNovak ()
В общем очень хорошо подходят для какой то группы статичных данных, аля диалог, или квест или скины.
Для динамики чуть посложнее.


Критичная проблема. Решил остаться на обычных инстансах.
drcrackДата: Четверг, 17 Сентября 2020, 10:21 | Сообщение # 5
старожил
Сейчас нет на сайте
Цитата
Критичная проблема.

В чем конкретно проблема? В том что измененные значения сохраняются в ассете? Так и в префабе сохраняются)
А если ты создаешь экземпляр префаба и уже его сравниваешь с SO так это вообще довольно глупое сравнение т.к. совершенно разные вещи. Неудивительно что SO тебе тут не подходит.


Сообщение отредактировал drcrack - Четверг, 17 Сентября 2020, 10:22
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Чем Scriptable Object отличается от скрипта с префабом
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг