Требуется ограничить движение персонажа в пределах видимости камеры. Камера может двигаться, а может стоять на месте. Камера не разворачивается и не двигается за персонажем. На разных компьютерах может быть разное разрешение экрана. Поэтому по ширине может быть разное ограничение с учетом разрешения.
Перед тем как решить перемещать объект или нет, уточнить его новые координаты выходят за экран или нет.
_________________ Unreal Engine - это моя жизнь!
Я раньше в других движках делал ограничение путем сложных вычислений. Ну сейчас в Unreal хотелось бы упростить. Была мысль сделать невидимые стены со своей коллизией, которые будут блокировать персонажа. Стены двигать вместе камерой. Расстояние между стенами по ширине вычислять через деление ширины и высоты экрана и подобрать экспериментально. Что бы при разных разрешениях работало.
Не знаю про какие ты движки, но и в Юнити такое тоже имеется (проецирование). На счет CryEngine не помню.
_________________ Unreal Engine - это моя жизнь!
Пробовал использовать этот Project и Deproject. Так и не понял как можно привязать координаты вьюпорта с world координатами. Мне не нужно что бы когда персонаж вышел за пределы камеры он начинал двигаться опять в пределы видимости. Мне нужно жестко что бы он был привязан. Границы вьюпорта должны действовать как коллизия.
Решил проблему своими старыми методами. Поковырялся в старых своих исходниках и сделал свой Blueprint. Выкладывать здесь скриншоты смысла нет. Потому что повторить сложно будет по ним.
У меня вычисляется всё через вычисления пересечений прямых в 2D координатах. С одного края экрана как бы одна прямая, с другого другая.Вместе они идут от камеры. И третья прямая как бы горизонтальная. Она движется вместе с персонажем. Точки пересечения прямых слева и справа являются ограничениями. Как только персонаж выйдет за пределы левой или правой линий, он возвращается в точку пересечения.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41