Наличие двух устройств ввода, которые следуют за вращением курсора с помощью новой системы ввода Unity

#c# #unity3d #game-engine

#c# #unity3d #игровой движок

Вопрос:

Итак, я создаю шутер сверху вниз и только что начал использовать новую систему ввода Unity. В настоящее время я установил его таким образом, чтобы вы могли использовать мышь или правую ручку контроллера для поворота пистолета игрока. Правый джойстик работает, но это приводит к тому, что вы больше не сможете использовать вращение мыши. Это происходит даже тогда, когда контроллер подключен к ПК, но, если я полностью удалю часть скрипта контроллера, вращение мыши снова начнет работать. Вот изображение моего скрипта.

  Vector2 mouseScreenPosition = playerControls.Player.MousePosition.ReadValue<Vector2>();//Allows the mouse to follow the cursors rotation
    Vector3 mouseWorldPosition = Camera.main.ScreenToWorldPoint(mouseScreenPosition);
    Vector3 targetDirection = mouseWorldPosition - transform.position;
    float angle = Mathf.Atan2(targetDirection.y, targetDirection.x) * Mathf.Rad2Deg;
    transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, angle));

    Vector2 p = playerControls.Player.Rotate.ReadValue<Vector2>();//Allows the right stick of a gamepad to follow the mouse cursor
    playerControls.Player.Rotate.canceled  = ctx => p = Vector2.zero;
    Vector3 gamePadCam = Camera.main.ScreenToWorldPoint(p);
    Vector3 gamePadDirection = gamePadCam - transform.position;
    float gamePadangle = Mathf.Atan2(p.y, p.x) * Mathf.Rad2Deg;
    transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, gamePadangle));
 

Комментарии:

1. @fattie Прости, я понятия не имел. Я относительно новичок в использовании stack Overflow

2. абсолютно никаких проблем, @nino!!! просто «Отредактируйте», если хотите, и вставьте в код.. обратите внимание, что есть удобная кнопка «Код», которая отформатирует его для вас. это действительно интересный вопрос, кстати, надеюсь, кто-нибудь узнает ответ