Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / [Unity][ScriptableObject]: Активные данные

[Unity][ScriptableObject]: Активные данные

GladiatorПостоялецwww9 авг. 201812:02#0
Привет.

Что вы думаете об активных данных ? Плохо ли это в контексте использования ScriptableObject ?
Под активными я понимаю данные, которые могут:
1. Аккумулировать данные по одной предметной области из разных источников. В SO хранятся константные данные. Для чего-то они просто стартовые значение, а иногда просто некие константы. Например, HP. Скорее всего это будет MaxHP.
Например мы можем написать ф-цию GetHP(int objectID) прямо в SO и оно вернёт hp по id. Правда скорее всего для этого будет использована внешняя ссылка, чтобы достать этот самый объект по Id.
2. Слать события на изменение этих данных.

ИМХО это удобно, но это лишняя связность. SO завязан на то что есть какой-то манагер, который найдёт нам этот объект. В свою очередь кто-то, кто использует этот SO будет вызывать GetHP и получается, если убираем тот манагер, цепочка рушится.

хз хз..

Буду рад услышать ваши комментарии.

Спасибо.

alt3dПостоялецwww9 авг. 201812:40#1
Ваще никакой связи темы с SO, это скорее вопрос архитектуры
И он точно также актуален и для MonoBehavior или обычного C# class.

SO - это просто объект который нельзя разместить в сцене. Свои плюсы, свои минусы.
А для чего и как его использовать - личное дело.

P.S. Я бы использовал их для всего на свете, а не только для хранения данных :)

GladiatorПостоялецwww9 авг. 201814:02#2
alt3d
> Ваще никакой связи темы с SO, это скорее вопрос архитектуры
Согласен. Только наверное это больше для того чтобы понять контекст, в котором я изъясняюсь.

alt3d
> А для чего и как его использовать - личное дело.
Да.. Но если мы порождаем связи с внешними классами. Т.е. данные знают о других агрегаторах данных. Правильно ли это ? Быть может это лишние связи, т.к. при изменении или вообще удалении этих агрегаторов нужно изменять и этот код.

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр