Transitions and Waypoints (ru)

Давайте создадим переход к этому дереву! Сначала начнем с самого простого - телепортации.

Мы хотим перейти на это дерево

Сначала создайте зону перехода, перейдите в папку ZONES/ и перетащите файл transition_zone.tscn на сцену.

Затем перейдите в папку HELPERS/ и перетащите файл transition_target.tscn на уровень.

Хелпер - 3D-стрелка для определения будущего положения и поворота игрока

Этот хелпер будет нашей точкой спавна, когда мы будем использовать зону перехода. Давайте установим параметры transition_zone внутри инспектора в Keys.

Основная точка перехода имеет:

last_point_is_end - используется только с путевыми точками, последняя точка будет такой же точкой спавна, как и target_object

name - необходимо всегда иметь уникальное имя для скриптов

target_object - имя нашего хелпера, на позицию которого будет телепортироваться игрок *не может быть пустым

waypoints - воспроизведите анимацию ходьбы между точками, а затем в последней точке телепортирует игрока в конечную позицию хелпера *если пусто - только телепортирует в цель, без анимации хотьбы по точкам

Давайте переименуем наш хелпер в "tree_target".

Установите то же имя для target_object в transition_zone в Keys.

Давайте проверим. Мы телепортировались к хелперу и посмотрели в ту же сторону, куда смотрит стрелка.

Но давайте усложним задачу - создадим несколько путевых точек.

Нажмите правую кнопку мыши на корневом узле уровня и выберите Add Child Node...

Выполните поиск Path3D.

Нажмите кнопку Create (Создать).

Когда Path3D выбран, вы увидите, что на панели инструментов в правом верхнем углу появились новые инструменты.

Новые инструменты path3D

Первый - выбрать точку

Второй - выбрать контрольную точку

Третья - Добавить точку

Четвертая - Удалить точку

Пятая - Закрыть кривую

Создайте первую точку с помощью третьей кнопки на панели инструментов (зеленый знак плюс с зеленой точкой). Также не забудьте переключиться на вид сверху.

Вид сверху. Можно переключать, нажимая на X Y или Z в правом верхнем углу.

И поставьте первую точку.

Затем перейдите в инспектор и откройте параметр Curve (Кривая). Выберите группу Points (Точки).

Установите Y на 1,7, чтобы следующие новые точки были на той же высоте.

Теперь нарисуйте новую точку и поместите последнюю рядом с хелпером.

Waypoints

Итак, давайте назовем наш Path3D уникальным именем и поместим это имя в transition_zone в Keys в waypoints.

Rename Path3D
Установить ключ waypoints с именем Path3D

Проверим! Смотрите, теперь игрок идет по этим путевым точкам.

Эй, давайте удалим хелпера и попробуем сделать последнюю точку пути нашей спавн точкой!

Сохраните название путевых точек, но удалите target_object и включите last_point_is_end.

Теперь при проходке по путевым точкам игрок остановится на последней точке.

Теперь давайте сделаем триггер перехода с функцией смены уровня! Сделать это можно несколькими способами - вручную или с помощью префаба. Давайте поговорим о ручном варианте.

Выберите зону перехода на текущем уровне и измените ее "id" с "transition" на "transition_to_level", а также добавьте новый строковый ключ "level" со строковым значением ID нужного уровня. Например, давайте установим уровень "intro" из res://assets/levels/

Как видите, после того как мы достигли последней точки маршрута, загружается новый уровень.

С префабом делаем аналогично как с обычной точкой перехода, просто вписываем нужный ID в "level"

Внимание! Я рекомендую блокировать комнаты между собой, чтобы игрок не мог использовать триггеры через стены.

Orange - blocks between rooms | Screenshot from old level editor

Last updated