Инди-разработчик (Pikuniku, Orbitalis) и автор нескольких книг о шейдерах Алан Зуккони (Alan Zucconi) поделился с пользователями Твиттера лайфхаками для работы в Unity.
В поля инспектора Unity можно вводить не только цифры, но и целые выражения.
В версии 2021.2.0. Alpha 10 в инспекторе Unity стало доступно ещё больше выражений.
К примеру:
sqrt — квадратный корень;
sin — синус;
cos — косинус;
tan — тангенс;
floor — округление вниз;
ceil — округление вверх;
round — округление к ближайшему целому;
round(x) — округляет значение компонента x Vector 3 до ближайшего integer.
Операции можно выполнять для нескольких выбранных объектов. Например, +=2 добавит 2 к координате каждого объекта. Поддерживаются все основные операции: +=, -=, *=, /=.
Также можно выбрать несколько объектов и распределить их по сцене с помощью операторов L (случайное распределение) и R (равноудалённое).
Плавные траектории удобно настраивать через кривые анимаций (Animation Curves). Кривые также можно использовать для плавного изменения значений нужных вам игровых параметров.
Создание:
public AnimationCurve Curve;
Применение:
float x = Curve.Evaluate(t);
Плавный переход одного цвета в другой можно задать через градиент (Gradient).
Создание:
public Gradient Gradient;
Применение:
Color c = Gradient.Evaluate(t);
Параметры нескольких объектов можно редактировать одновременно, если выбрать их на сцене или в окне иерархии. Если после выбора объектов в каком-то из полей стоит прочерк (—), значит сейчас значение этого параметра у объектов не совпадает.
Если вы работаете в пользовательских редакторах, то обратите внимание на атрибут CanEditMultipleObjects, который включает поддержку редактирования нескольких элементов.
Вместо того чтобы подгонять координаты вручную, можно, перетаскивая предмет, зажать на клавиатуре кнопку V и он притянется к вершинам соседнего объекта.
В скриптах Unity с помощью атрибута [Header(«название заголовка»)] можно задавать заголовки, которые будут видны в инспекторе. В коде шейдеров так тоже можно делать, нужно только убрать кавычки.
Через атрибут [Space] можно задать отступ, а указав в скобках число [Space(10)], можно задать высоту отступа в пикселях.
Start можно сделать корутиной.
До:
void Start () { … }
После:
IEnumerator Start () { … }
Сработает с OnCollision и OnTrigger.
Если вам уже приходилось работать с корутинами, то вы наверняка знакомы с выражением: yield return new WaitForSeconds(1f);
Ещё можно дождаться окончания запущенной корутины: yield return StartCoroutine(MyCoroutine());
Если вам интересна эта тема — у Зуккони на сайте есть отдельный урок на тему вложенных корутин.
Если в консоли включить Error Pause, то Unity будет автоматически вставать на паузу каждый раз при возникновении ошибки. Очень удобно для тестирования и отладки.
С помощью Material.Lerp можно настроить линейную интерполяцию (linear interpolation, сокращённо — lerp) между двумя материалами.
В процессе будут интерполированы все параметры с одинаковыми именами.
Применение:
renderer.material.Lerp(material1, material2, t);
Если вы хотите научиться грамотно работать в Unity, советуем вам пройти наш курс от Unity-разработчика из Pixonic Алексея Малороссиянова. На курсе мы научим вас создавать сцены, интерфейсы и механики для собственных 2D-игр при помощи Unity и C#.