Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 29.02.2020
Сообщений: 14
1

Проблема с управлением движения 2D персонажа сразу через клавиатуру и геймпад

29.02.2020, 18:26. Просмотров 1111. Ответов 1

Здравствуйте. У меня возникла проблема, которую я никак не могу решить и не имею понятия из за чего она возникла. Суть проблемы в том, что если в скрипте есть только отрывок кода отвечающий за движение на клавиатуре, персонаж передвигается нормально, но если добавить отрывок кода отвечающий за движение на геймпаде, движение на геймпаде будет нормальным, а на клавиатуре станет другим, быстрее и со скольжением. Я уже много раз переделывал код, но каждый раз происходит такая же или похожая проблема. Помогите пожалуйста и заранее спасибо.

Щас я хочу просто сделать движение сразу и на клавиатуре, и на геймпаде, а потом сделаю выбор чем управлять для каждого персонажа, а повторяющиеся отрывки кода сделаю в методах.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        // Движение на клавиатуре
        if (Input.GetKey(KeyboardRight))
        {
            transform.Translate(Vector2.right * Speed);
            transform.localScale = new Vector3(1, 1, 1);
        }
 
        if (Input.GetKey(KeyboardLeft))
        {
            transform.Translate(Vector2.left * Speed);
            transform.localScale = new Vector3(-1, 1, 1);
        }
 
 
        // Движение на геймпаде
        if (Input.GetAxis("Horizontal") > 0)
        {
            transform.Translate(Vector2.right * Speed);
            transform.localScale = new Vector3(1, 1, 1);
        }
 
        if (Input.GetAxis("Horizontal") < 0)
        {
            transform.Translate(Vector2.left * Speed);
            transform.localScale = new Vector3(-1, 1, 1);
        }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.02.2020, 18:26
Ответы с готовыми решениями:

Проблема Unity с управлением C# движение персонажа джойстик
Сделал сцену с персонажем которым по идее должен управлять джойстиком персонаж имеет компонент...

Движения 3D персонажа на Unity
Помогите пожалуйста с кодом я его уже 6 часов пытаюсь написать. Напишите пожалуйста. Заранее вам...

Анимация движения персонажа
Здравствуйте. Делаю первые шаги в Unity. Пишу код движения перса по уроку...

Отображение движения персонажа
Когда на экране показывается какое то действие персонажа, например двигается рука. Чтобы это...

1
285 / 208 / 83
Регистрация: 17.02.2016
Сообщений: 1,220
Записей в блоге: 1
29.02.2020, 19:22 2
Лучший ответ Сообщение было отмечено Skuper как решение

Решение

скорее всего потомучто Input.GetKey(KeyboardRight) и (Input.GetKey(KeyboardLeft) у тебя на кнопках A и D

а при использованиии джойстика ты используешь Input.Axis в которых по умолчанию А и Д отвечают за Horizontal

таким образом у тебя срабатывает "двойное" нажатие или как то так

Добавлено через 4 минуты
кнопки "направо" и "налево" тоже привязаны к Horizontal
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.02.2020, 19:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Остановка движения персонажа
Когда нажата кнопка S то персонаж должен остановится если она отпущена то снова двигаться using...

Настройка движения персонажа
Здравствуйте! У меня на монтажном столе в Macromedia Flash есть объекты Layer1 и Layer2 в них...

Анимация движения персонажа
Всем привет! Мне нужно сделать плавную анимацию персонажа где он ходит влево-вправо, назад-вперед и...

Button для движения персонажа
На сцену добавил кнопки влево в право, у объекта который хочу двигать есть два метода MoveLeft и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.