Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
3 / 3 / 0
Регистрация: 02.12.2018
Сообщений: 58

Проблемы регуляции вертикальной скорости

19.11.2019, 19:16. Показов 1705. Ответов 2

Студворк — интернет-сервис помощи студентам
Смысл кода, плавный рост переменной при нажатии на клавиши, и такое же плавное уменьшение с заданной скоростью.
Рост идёт без проблем, при отпускании клавиш не происходит уравновешивание:
C#
1
2
  if (Input.GetKey(KeyCode.LeftControl)) { verticalSpeed -= 0.2f; }  else { verticalSpeed += 0.1f * Time.deltaTime; }
  if (Input.GetKey(KeyCode.Space)) { verticalSpeed += 0.1f; }  else { verticalSpeed -= 0.1f * Time.deltaTime; }
Попробовал такой вариант:
C#
1
2
3
4
if ((!Input.GetKeyUp(KeyCode.Space)) || (!Input.GetKeyUp(KeyCode.LeftControl))) {
            if (verticalSpeed > 0.5f) { verticalSpeed -= 0.4f * Time.deltaTime; }
            if (verticalSpeed < -0.5f) { verticalSpeed += 0.4f * Time.deltaTime; }
            if ((verticalSpeed > -0.8f) && (verticalSpeed < 0.8f)) { verticalSpeed = 0f; }}
То есть проверяем что если не нажата не та не другая клавиша - проверяем значение и делаем очередную итерацию
уменьшения или увеличения переменной. При достижении диапазона, обнуляем и изменение останавливается. Но ни
хрена. При нажатии на кнопку роста нет совсем.

Вижу что круто но что не пойму, подскажите вариант реализации описанных действий.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2019, 19:16
Ответы с готовыми решениями:

Проблемы с многострочным текстом и вертикальной полосой прокрутки
Добрый вечер! Подскажите пожалуйста как запрограммировать текст (EDIT) чтобы он переходил на другую строку, и как запрограммировать верт....

Проблемы скорости с большим числом потоков в WinForms
Есть две формы. В одной запущено около 200 потоков, которые почти не занимают процессор, во второй форме производятся вычисления. Проблема...

проблемы с onewire usart на скорости выше 36 МГц
Понадобилось мне к стм32 с частотой 72 мгц прицепить несколько десятков датчиков DS18b20. Я взял свою либу, которую отладил на стм32 с...

2
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
19.11.2019, 19:28
Лучший ответ Сообщение было отмечено Arbitr00 как решение

Решение

Почему в одном случае умножаешь на делта тайм, в другом нет?
Вообще есть такая вот штука:
https://docs.unity3d.com/Scrip... tAxis.html
https://docs.unity3d.com/Manua... nager.html
Там как раз плавное нарастание до определенной величины, и затухание при отпускание клавиши.
C#
1
2
3
4
5
6
7
8
9
10
11
12
        if (Input.GetKey(KeyCode.LeftControl))
            verticalSpeed -= 0.2f * Time.deltaTime;
        else
            verticalSpeed += 0.1f * Time.deltaTime;
 
        if (Input.GetKey(KeyCode.Space))
            verticalSpeed += 0.1f * Time.deltaTime;
        else
            verticalSpeed -= 0.1f * Time.deltaTime;
 
        // Ограничиваем значение от 0 до 100
        verticalSpeed = Mathf.Clamp(verticalSpeed, 0.0f, 100.0f);
1
3 / 3 / 0
Регистрация: 02.12.2018
Сообщений: 58
20.11.2019, 19:32  [ТС]
Большое спасибо. Странно что сам не догадался.
C#
1
2
3
        turnAngle = Input.GetAxis("Horizontal") * speedRot * Time.deltaTime; // расчёт угла поворота
        directForce = Input.GetAxis("Vertical") * speedMove * Time.deltaTime; // направление движения
        verticalSpeed = Input.GetAxis("Fly") * speedH * Time.deltaTime; // подъём/посадка
Первые 2 строки были и работали плавно, но почему то не додумался так же управлять подъёмом и спуском.
Настроил в импуте на контрол и спейс, изменил параметр гравитации, настроил силу и теперь плавненько снижается и подымается.
А на самом деле почему. Я пытался так использовать, пример увидел гдето в сети, но там после настройки в импуте
обращение к кнопкам было прописано в таком виде:
C#
1
if (Input.GetButtonUp("Fly"))
Но ноль реакции было.
Ну а когда обращаешься как к оси, уже всё работает как надо.
Спасиб
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2019, 19:32
Помогаю со студенческими работами здесь

Расчет изменения угловой скорости\линейной скорости центра масс полигона
Подскажите как и какие требуется применить физические законы для решения этой задачи. Необходимо передать импульс произвольному полигону в...

Рассчитать вектор скорости имея направление и модуль вектора скорости
Здравствуйте! Нужно рассчитать вектор скорости, имея лишь направление объекта и модуль вектора скорости, иными словами скорость единым...

Есть-ли отличие скорости резания от окружной скорости на токарных станках
Здравствуйте Форумчане?,будьте добры разьясните пожалуйста! Сформулировал вопрос как смог,надеюсь ясно.У меня что-то не получается...

При какой скорости второго тела модуль скорости первого не изменится (абсолютоно неупругое столкновение)?
Тело массой 1 кг движется со скоростью 2 м/с а на встречу ему движется тело массой 2 кг.между телами происходит абсолютно неупругое...

Зависимость начальной скорости от скорости в момент приземления
Пользователь вводит высоту с которой было брошено тело и его массу. Требуется вычислить зависимость скорости в момент приземления от...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru