Страница 1 из 1

Идея синтаксического генератора (editor+dom+code)

СообщениеДобавлено: 12 сен 2017, 11:45
ShockWave2048
Всем привет.
Начал набрасывать скрипт для генерации дерева DOM (+статические ссылки для ресурсов) и для сцены юнити.
Хотел проверить у сообщества идею, собрать до кучи минусы и плюсы.
И так, на входе сцена любой сложности, скрипт собирает данные объектов, строит дерево классов и префабов, ресурсов, пример:
Синтаксис:
Используется csharp
public class QScene // root уровень сцены
{
    static public QNode MainCamera { get; }
    static public QNode MainCanvas { get; }
    static public QNode DirectionalLight { get; }
    static public QNode EventSystem { get; }
    static public QNode GameField { get; }
}
public class MainCanvas : QNode // один из объектов сцены
{
    static public QNode OkButton { get; }
    static public QNode LayoutGroup { get; }
    static public QNode FormController { get; }
}
 

пример использования:
Синтаксис:
Используется csharp
// обращение к статическому объекту
QScene.MainCanvas.OkButton.Button.OnClick.AddListener(OnOkClick);
QScene.Player.AudioSource.play();
// обращение к динамическому объекту
QScene.get(Prefabs.Enemy)[0].EnemyController.life++;
// Добавление компонента или GameObject
QScene.add(Prefabs.Player, DieAnimController, true);

 


Плюсы:
- избавляет от необходимости помнить устройство сцены и ресурсов
- позволяет отказаться от поиска объектов через строковые именования или жестких ссылок на объекты через поля и свойства
- следит за списком компонентов объекта, автоматически добавляет их в дерево
- следит за переименованием ресурсов, подменяет их в коде доступа к дереву

Минусы:
- код привязан к одной сцене
- кардинально отличается от обычного workflow в среде unity
- отслеживание перемещений объекта внутри дерева возможно нерешаемая задача

Ближайший аналог - JQuery для JavaScript.

Re: Идея синтаксического генератора (editor+dom+code)

СообщениеДобавлено: 12 сен 2017, 12:59
snezhok_13
Не очень понятно для чего это все? вот совсем, какую вы проблему этим решаете?
Сериализация над сериализацией но не понятно для чего.

Re: Идея синтаксического генератора (editor+dom+code)

СообщениеДобавлено: 12 сен 2017, 13:02
ShockWave2048
snezhok_13 - Решаемые задачи и проблемы указаны в "Плюсах".

Сериализация тут ни при чем. Нет вмешательства в компоненты или поведение.

Re: Идея синтаксического генератора (editor+dom+code)

СообщениеДобавлено: 12 сен 2017, 13:11
seaman
Ну т.е. параллельно тому, что Юнити уже хранит всю иерархию сцены, Вы собираетесь хранить свою?

Re: Идея синтаксического генератора (editor+dom+code)

СообщениеДобавлено: 12 сен 2017, 13:24
snezhok_13
seaman писал(а):Ну т.е. параллельно тому, что Юнити уже хранит всю иерархию сцены, Вы собираетесь хранить свою?


Вот я прочитал "плюсы", разумеется. И нифига их не понял.
Не связано с сериалиализацией, но seaman предположил то же что и я, вы параллельно хотите хранить свою иерархию сцены и зависимостей.

Re: Идея синтаксического генератора (editor+dom+code)

СообщениеДобавлено: 12 сен 2017, 13:28
ShockWave2048
seaman - а в чем проблема? даже если сто объектов, это сто ссылочных переменных, это же не мегабайты данных. Там не хранятся копии объектов, или что вы подразумеваете под "параллельным хранением иерархии"?

Для 100 объектов ссылочного типа это примерно 400-800(х64) байт, плюс обязательные затраты на сбор и инициализацию или вы про какое то другое хранение?