Добавлен , опубликован
Решил еще раз попробовать осилить редактор сценариев. В пятый раз, да.
Ничего пафосного в этот раз анонсировать не буду. Просто оглашу мысли по поводу.
На мой взгляд ошибкой моей является то, что я пытаюсь прыгнуть выше головы. Сначала планирую супер гига мега инструментарий, из расчета на который пилю убер тяжелую архитектурку. В результате все внутри запутывается, и мне невероятно сложно становится поддерживать код. И я начинаю заново.
В этот раз я попытаюсь сделать все еще раз. Мега убийственных фич - не будет.
Новая концепция вот такая:
  • Оставляем минимализм (я думаю это основная фишка моего гипотетического редактора).
  • Убираем настройку типов данных - всякие человекопонятные имена, настройку типов по умолчанию для каждого параметра метода, подсказки и так далее. Пусть выводится просто название метода как в коде.
  • Убираем возможность переделать тип. То есть если мы ввели какой-то метод в редакторе сценариев, который после ребилда был переименован - метод просто пропадает, все чистится. Никакого предложения "изменить имя", ассоциирования и так далее. В результате мы просто не должны поддерживать случаи когда метод по какому то чуду пропал, изменять размеры списка параметров и прочую мишура преобразования.
  • Добавляем линейку методов. То есть как в коде - параметр1.параметр2.параметр3.
У первого элемента может быть подставлено в качестве значения:
    • статический публичный метод
    • объект наследуемый от UnityEngine
    • строка. Строка может представлять любой базовый тип данных. Имеет проверку валидности ввода.
У следующий элементов можно подставлять только публичные методы инстансов
  • Убираем поддержку дженерик типов.
  • Убираем кеширование уже использованных методов в других выражениях.
  • Убираем поддержку массивов
  • Убираем поддержку переменных
Это то что касается редактирования выражений. Возможно, что-то добавится, но пусть это будет в рамках апдейтов, а не базового функционала.
А сами сценарии - будем думать ещё.
Такая вот новость.
0
29
9 лет назад
0
Убираем возможность переделать тип. То есть если мы ввели какой-то метод в редакторе сценариев, который после ребилда был переименован - метод просто пропадает, все чистится.
Это конечно не круто... Лучше показывать ошибку на этом месте, как было в старом добром варике
Добавляем линейку методов.
Как не понял этот момент
2
18
9 лет назад
2
Надо было назвать тему "Моя попытка номер пять". Песня раньше такая была.
alexprey:
Как не понял этот момент
И я того же мнения.
2
29
9 лет назад
2
BrEd Pitt, или пытка номер пять
0
18
9 лет назад
0
Только сейчас заметил.
Убираем поддержку массивов
Убираем поддержку переменных
С поддержкой тоже бы неплохо было.
2
27
9 лет назад
Отредактирован Devion
2
линейка методов - цепочка вызовов. a.b().c() вместо c(b(a)). Это самопровозглашенное понятие от незнания, как это еще обозвать.
Сегодня я склонен полагать что нужно сделать что-то, чем можно пользоваться, и при том лучше, чем то что уже есть (нативный редактор выражений может использовать в качестве объектов только GO и вызывать только методы-инстанса, а в качестве параметров использовать только конкретные значения, без возможности указать встроенные выражения).
Затем уже, после того как будет это что-то чем можно пользоваться - наращивать по приоритетности. По крайней мере если что-то не получится - это не будет значить, что нужно начинать с самого начала.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.