Гайд: 10 лайфхаков для Unity

Инди-разработчик (Pikuniku, Orbitalis) и автор нескольких книг о шейдерах Алан Зуккони (Alan Zucconi) поделился с пользователями Твиттера лайфхаками для работы в Unity.

В поля инспектора Unity можно вводить не только цифры, но и целые выражения.

Embedded Image

В версии 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#.

Комментарии: 0