Названия атрибутов говорят сами за себя. Вызываются они как только вы переходите в инспектор и выбираете GameObject на котором прицеплен этот скрипт.
Поводом для написания такого решения послужила проблема с null override, дело в том, что программист ленивый и не хочет каждый раз делать drag&drop, или же цеплять компонент в Awake/Start. В связи с этим, часто можно увидеть подобные конструкции.
Почему бы в Awake вместо этого один раз не проинициализировать?
Хватит кешировать трансформ. Уже давно в Юнити он правильно закеширован во встроенное переменной transform. В старых версиях да, с ним была проблема
И так в каждом классе с каждым полем? А если переменную переименовали? опять лезть в Awake? Программисты ведь ленивые)
Решение автора очень элегантное и быстрое
с таким же успехом можно спросить, а почему б не закэшировать автоматом через OnValidate/Reset?
Я так и написал в статье, что есть два решения которые работают для юнити:
1. Drag&drop
2. Прописывать в Awake/Start
Оба метода требуют "ручной" работы, также можно забыть прописать что-то в Start, особенно при добавлении нового поля.
Решением было автоматизировать один из методов, дописывать код в файлах сликшом жестко, а воспользоваться чудными возможностями юнити редактора мне показалось отличной идеей.
В итоге я пользуюсь плагином каждый день и во всех своих проектах. Считаю что вышло очень удобно, у без вредительства.
По видео все очень здорово!
void Reset ()
{
if (_SuperComponent==null) _SuperComponent =gameObject.AddComponent(SuperComponent);
}
вот такую штуку делаешь и когда компонент добавляешь на объект он сам создает то чего ему не хватает, туда же можно и поиски всякие добавлять. Плагины для этого не нужны :)