Система телепортации в игровых движках Unity и Unreal Engine работает по-разному.
В Unity для создания простого телепорта нужно: 2
- Создать игровой объект начальной точки телепортации (PointStart). 2 Добавить к нему компонент Box Collider 2D и поставить галочку в поле Is Trigger, чтобы получать информацию о входе персонажа в зону этого объекта. 2
- Создать второй игровой объект конечной точки телепортации (PointEnd). 2
- Написать скрипт на языке C#, который будет приводить телепортацию в действие (Teleport). 2 Для этого скрипт нужно присвоить игровому объекту PointStart. 2 В скрипте объявить переменную, в которой будет храниться информация о позиции конечной точки телепортации. 2 Затем с помощью метода OnTriggerEnter2D объект будет реагировать на событие вхождения в объект PointStart. 2 Как только какой-либо объект войдёт в область PointStart, скрипт установит новые координаты для этого объекта, тем самым мгновенно телепортировав его к объекту PointEnd. 2
В Unreal Engine система телепортации работает с помощью «блюпринтов» (визуального программирования). 1 Например, чтобы сделать простые двери-телепорты, нужно: 1
- Создать визуальное отображение будущей двери — это блюпринт класса Actor с тремя компонентами: Static Mesh (любой удобный меш), Box Collision (коллайдер-параллелепипед, при контакте с которым игрок будет телепортироваться) и Arrow (стрелка, которая будет отвечать за то, в какую сторону будет выходить персонаж из портала). 1
- Создать переменную типа Boolean (bCanTeleport) — она будет проверять, может ли дверь перенести персонажа, и в зависимости от этого принимать значение True или False. 1
- Создать переменную TargetPortalDoor типа BP Portal Door — это дверь-цель. 1
- Перетянуть в Event Graph переменную TargetPortalDoor и создать для неё отдельный нод Set Can Teleport. 1
- Создать нод Teleport и в соответствующие параметры присоединить Return Value от GetWorldRotation и GetWorldPosition. 1
- Создать нод Delay — это небольшая задержка, которая нужна, чтобы у игрока было время выйти из проёма, пока возможность телепортации отключена. 1
- Перетащить две копии готового «блюпринта» на сцену и назначить им друг друга в переменной TargetDoorTeleport во вкладке Details. 1
Таким образом, в каждом из движков система телепортации имеет свои особенности.