@aizhar777

Как переместить персонажа на обратную сторону экрана если он вышел за область видимости камеры с другой стороны в Unity(2D)?

В С# не силен, пытаюсь изучить Unity, на примере создания простенькой 2Д игры.
Подскажите каким образом можно реализовать чтобы перемещение обьекта(персонажа), например:
Если персонажа выходит за область видимости с левой стороны, то он появляется с правой стороны экрана и наоборот. С сохранением скорости и направления движения. Почему то думается в Unity это делается просто, гугол не помог, возможно не правильно спрашиваю :)

Пока сделал по бокам пустые объекты с коллайдером при столкновении с которыми возвращаю перса в точку появления.
  • Вопрос задан
  • 1044 просмотра
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Ну вариант с коллайдерами ничего так.
На самом деле волшебной пули нет. В голову еще приходят варианты с проверкой экранных координат (Camera.main.WorldToScreen... и дальше проверяете если вышел за пределы экрана - телепортаете) при перемещении.
Сохранение скорости и направления - так оно то и не меняется при телепортации - при телепортации вы меняете только координаты. Хотя смотря как задана скорость и направление (по идее должен быть вектор относительно центра объекта).
ВОзвращать надо не в точку появления, а считать новые координаты относительно точки выхода за экран. Например, объект вышел за экран слева. Значит его координата по x меньше нуля (с поправкой на размер - хз где у вас центр). Соответственно делаем x равным длине экрана с поправкой на размер объекта, и все это переводим в мировые. В лоб решение выглядит как то так.

Если вам надо чтобы объект был "жопой слева мордой справа" - т.е. половинные состояния - то тут посложнее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы