RaycastAimInput и ViewPortDragInput
Last updated
Last updated
Это 2 готовых контроллера для игр от первого лица. Их готовые префабы для использования есть в папке Prefabs/StarterPack/UI с такими же именами. Перед использованием их надо поместить после джостика (или вместо джостика) в канвас. Далее их можно будет использовать через эвенты как синглтоны из любой точки кода.
ViewportDragInput Этот контроллер позволяет отслеживать дельту пальца на экране. Эвент OnDragPointer в контроллере будет вызываться каждый раз, когда игрок будет двигать пальцем по экрану. Первый параметр эвента указывает дельту сдвига пальца за кадр, а второй - текущую позицию пальца. С помощью этого контроллера было реализовано управление оружием в префабе ViewPortDragExampleGun. Если поместить его в объект камеры, и включить данный контроллер, то пальцем можно будет поворачивать наведение оружия с ограничением на угол поворота:
RaycastAimInput Контроллер позволяет отслеживать точку в мире, куда попал палец игрока. Эвент OnAim вызывается, когда игрок двигает пальцем по экрану. Первый параметр эвента - поворот объекта, который направлен в точку попадания, при этом учитывается offset объекта относительно камеры, который где-то до этого нужно задать через метод SetGunOffset. Обычно туда достаточно положить локальную позицию пушки в старте, если она не меняется и находится прямо в камере. Второй аргумент эвента - мировая точка попадания пальца. Если палец попал в пустоту или объект слишком далеко, то там будет точка в воздухе, вектор которой до камеры ограничен расстоянием raycastMaxDistance. Пример реализации управления оружием с помощью этог оконтроллера в префабе RayCastAimExampleGun. Для его работы нужно его закинуть в объект камеры. Оружие будет поворачиваться в точку наведения игрока: