#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!!! просто «Отредактируйте», если хотите, и вставьте в код.. обратите внимание, что есть удобная кнопка «Код», которая отформатирует его для вас. это действительно интересный вопрос, кстати, надеюсь, кто-нибудь узнает ответ