Unreal Engine 4 https://uengine.ru/forum/ |
|
[Новичок] Tick, Обработка событий и нажатий https://uengine.ru/forum/viewtopic.php?f=19&t=4386 |
Страница 1 из 1 |
Автор: | xai [ 21 янв 2017, 17:07 ] |
Заголовок сообщения: | [Новичок] Tick, Обработка событий и нажатий |
Здравствуйте, на разработку игр перешел недавно (раньше на C# софт писал). Выбрал UE4 и пишу на С++. Документацию читал но что то она не зашла. Помогите, есть 3 вопроса. 1. Tick зависит от производительности ПК. Я понял что эта функция вызывается при каждом кадре и получается что если туда написать код, который например немного поворачивает объект то на разных ПК он будет крутится по разному а иногда даже на одном и том же (когда просадки fps случаются). Теперь внимание, как ркешить эту проблему? Может есть какая то привязка к времени или еще что то. Код: FVector NewLocation = GetActorLocation(); NewLocation.Z = NewLocation.Z + 0.2f; SetActorLocation(NewLocation); 2. Обработчик событий. Так и не смог найти штуку которая вызывала бы функцию когда например объекты касаются. Или это нужно делать методом: В Tick вставить функцию if которая бы проверяла когда координаты близко? Это как то бредово когда много объектов. В общем вопрос: Как активировать определенную функцию при каком либо событии либо при касании объектов. 3. Обработчик нажатий клавиш Стандартное управление персонажем в движке понятно. А как реализовать что бы при нажатии определенной клавиши вызывался определенный код, который например не просто управляет персонажем а например меняет мир. Знаю что на Unity есть такая штука которая вставляется в аналог Tick Код: if (Input.GetMouseButton(0)) { [i][u]Выполняемый код при нажатии[/u][/i] } Как это реализовать на Нереальном Двигателе 4? |
Автор: | Flakky [ 21 янв 2017, 21:29 ] |
Заголовок сообщения: | |
1) У тик функции есть параметр DeltaTime. Это длина кадра в секундах. Соответственно, что бы выровнять действие вне зависимости от фпс, нужно умножить что-то на этот Delta Time. Например если хотите двигать сферу на метр в секунду, то будет следующее : NewLocation.Z = NewLocation.Z + 100.0f * DeltaTime. 2) https://www.youtube.com/watch?v=O47Zw94 ... eP08DyWtHh Там он про это говорит. 3) Обработчики событий посмотрите в стандартной заготовке. Оно делается ровно так же, как и на персонаже (например прыжок). Единственное, там нужно ещё в ProjectSettings > Inputs настроить идентификаторы. |
Автор: | Vladimir488 [ 23 янв 2017, 11:27 ] |
Заголовок сообщения: | |
Я так понял что на моём компе с такими формулами в твои игры не поиграешь. 8) |
Автор: | Prytaleks [ 23 янв 2017, 14:58 ] |
Заголовок сообщения: | Re: |
Vladimir488 писал(а): Я так понял что на моём компе с такими формулами в твои игры не поиграешь. 8) фиговый у тебя комп, это код из игры которая в данное время летит на двухядерной мобиле. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |