как сделать задержку в скрипте unity
добавьте время задержки перед выполнением кода [duplicate]
Альтернативой является использование разделителя и экранирования, но для этого требуется больше кода и медленнее как при сериализации, так и при десериализации ( однако результат может быть сохранен для чтения человеком).
2 ответа
Есть много способов подождать в Единстве. Это действительно просто, но я думаю, что стоит обратить внимание на большинство способов сделать это:
Пример ниже повернет на 90 град, подождите 4 секунды, поверните на 40 градусов и подождите 2 секунды, а затем, наконец, поверните вращать 20 град.
Единственная разница между WaitForSeconds и WaitForSecondsRealtime заключается в том, что WaitForSecondsRealtime использует немасштабированное время ожидания, что означает, что при приостановке игры с Time.timeScale функция WaitForSecondsRealtime не будет затронута, но WaitForSeconds будет.
Подождите и вы сможете увидеть, сколько времени вы ждали:
Хорошим примером этого является то, когда вам нужно, чтобы таймер отображал на экране сколько времени он ждал. В принципе, как таймер.
Вы все же можете упростить это, перемещая петлю while в другую функцию сопрограммы и уступая ее, а также все еще сможете видеть ее и даже
Подождите / спящий режим до тех пор, пока переменная не изменится или не сравняется с другим значением:
4. С сопрограммой и WaitUntil :
Проблема заключается в том, что для этого требуется так много переменных, чтобы она не запускалась каждый раз, а только один раз, когда таймер закончился после ожидания.
Есть еще другие способы подождать в Unity, но вы обязательно должны знать те, о которых говорилось выше, поскольку это облегчает создание игр в Unity. Когда использовать каждый из них зависит от обстоятельств.
Для вашей конкретной проблемы это решение:
И вызывать / запускать функцию сопрограммы с самого начала или Обновить вы вызываете его с помощью
В игровом движке Unity3D как сделать задержку?
Это относится только к Unity3D, игровому движку.
Допустим, у меня есть одна строка кода, а затем другая. Как мне сделать задержку между этими двумя строками кода. Повторюсь, я делаю это и для Unity3D.
Везде поискал, но ничего не выйдет.
2 ответа
Как игровой движок FRAME-BASED , Unity, конечно же, имеет все мыслимые виды таймеров и встроенных средств управления циклами выполнения.
Как мне сделать задержку между этими двумя строками кода.
Как упоминалось выше venerik:
Думаю, вам следует использовать другой подход. Потратьте время на изучение игрового цикла. Затем вы можете разделить свой код, чтобы что-то сделать (ваша первая строка), а затем выполнить что-то еще (ваша вторая строка) после прохождения некоторого времени Time.deltaTime. Thread.Sleep почти всегда категорически запрещено
Я бы, наверное, спросил «в первую очередь, каковы ваши намерения в отношении задержки?»
Если это необходимо для обновления состояния 1000 игровых объектов каждый кадр, то спящий режим потока не будет разумным выбором.
Ответ может быть «не делай этого», но он также должен включать «попробуйте это вместо этого».
На этом я предлагаю вам свое предложение:
Логическая задержка между строками кода
В приведенном ниже примере у меня есть игра с тысячами автомобилей, все с GPS, которые должны периодически обновляться, чтобы найти оптимальный путь, по которому можно добраться до пункта назначения. Вместо того, чтобы выполнять этот расчет каждый кадр (что было бы неэффективно), я выполняю его каждые 3 секунды для каждой машины. Автомобили сгруппированы в группы по 10 штук, чтобы не обрабатывать их все сразу даже после ожидания в течение 3 секунд.
В игре Cities: Skylines используется отложенная обработка для расчета путей, по которым транспортные средства должны добраться до места назначения, без снижения частоты кадров.
Льготы
Просто основной цикл игры запущен на полную мощность!
Задержка функции
Доброго времени суток, мне нужно реализовать функцию по типу Console.ReadKey(), которая не продолжает работу программы пока не произойдет какое-то действия, мне нужно реализовать метод который запустит корутину на выполнения, которая в свою очередь должна через какое-то время сделать глобальную переменную (либо out) в некоторое значения, после чего первый метод должен вернуть эту переменную, в коде примерно такое:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Задержка времени
Добрый день! Я делаю игру РПГ, я создаю босса, и хотелось бы сделать так, чтоб он атаковал раз в 3.
Задержка анимации
Доброго времени. У меня проблема с анимацией 2D персонажа. Опаздывает проигрывание анимации вот.
Задержка в массиве
Есть массив, как сделать так, чтобы перед нажатием кнопки, загружался только первый элемент массива.
Решение
как это пойдет к первому коду? Там то функция принимает 3 параметра, у вас два, и темболее там же нужно MonoBehavior передать, а как это?
Добавлено через 4 минуты
И почему нелья сделать вот так, что тут неправильно?
k0vpack, зачем передавать, когда она с монобеха вызывается? Метод расширения же.
Добавлено через 1 минуту
Корутина и так тип Coroutine отдаёт, она не может другой тип отдать.
k0vpack, это же делегат с возвращаемым значением, анонимная функция, лямбда выражение.
Добавлено через 1 минуту
Как у любой функции, у него есть возвращаемое значение: void, int, bool или что угодно.
k0vpack, эм. тому, кто вызвал, как у любого метода.
Добавлено через 35 секунд
Ты вообще в курсе про делегаты?
это метод без параметров с результатом bool
Добавлено через 1 минуту
Я там опечатался лишним Input
k0vpack, смотри в корутину, где он вызывается
Добавлено через 3 минуты
Я бы посоветовал корректно сформулировать задачу, чтобы можно было её декомпозировать.
Добавлено через 2 минуты
К тому же, подозреваю, что данная задача может быть не выделена обособленно, а являться частью более сложного алгоритма.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Задержка в Unity
Никак не могу понять. Обьясните на пальцах как сделать задержку. Юзал IEnumerator, но что то не.
Задержка выполнения
Доброго всем Кто может подсказать, как можно прописать задержку выполнения функции (С#)? На двери.
C# Unity Задержка по времени
Добрый день! Я тут столкнулся с проблемой. using System.Collections; using.
Задержка после прыжка
Здравствуйте, столкнулся с такой проблемой. Есть тот же кубик, и платформы. Нужно как-то заставить.
Задержка bool-переменной
Здравствуйте, программисты! У меня такой вопрос(если можно, сразу скрипт подредактируйте). Как.
Задержка выполнения кода в Unity
Подскажите пожалуйста, каким образом можно реализовать задержку выполнения кода. У меня есть.
Unity C# задержка
Я где-то нашёл вот такую тему:
System.Threading.Thread.Sleep(2000);
, но из за неё виснет и вся игра.
Kano_Tanaka
То есть стрельба уже сделана?
Да нет, вопрос в том, как задать эту паузу и задать её продолжительность на C#
Kano_Tanaka
Когда начинаешь перезарядку, запоминаешь текущее время. Когда время на перезарядку кончилось, снимаешь флажок.
Как же ты сделал стрельбу если не можешь сделать такую простую вещь?
-Eugene-
что за флажок?
Kano_Tanaka
> что за флажок?
Булева переменная
-Eugene-
О, слушай, а можно сделать так, чтобы программа продолжила своё выполнение только по окончании звуковой дорожки перезарядки?
И если можно, то как.
Kano_Tanaka
// так делать неправильно 🙂
Yield return new WaitForSeconds (GetComponent ().clip.length);
Kano_Tanaka
Программу вообще никак тормозить не надо. Точно так же как не надо тормозить программу в паузах между выстрелами
-Eugene-
А что ты тогда предлагаешь?
Kano_Tanaka
> О, слушай, а можно сделать так, чтобы программа продолжила своё выполнение
> только по окончании звуковой дорожки перезарядки?
Типа и весь мир подождёт, все враги и всё движение замрёт, пока герой перезаряжает? Бред же. Ты это уже и попытался сделать в нулевом сообщении: System.Threading.Thread.Sleep(2000); Это и есть стоп программы на 2 секунды.
Kano_Tanaka
> А что ты тогда предлагаешь?
Тебе уже рассказали.
Заводишь в скрипте, который отвечает за стрельбу, переменную типа bool, например: bool bShooting; Это и будет наш флаг, разрешающий / запрещающий стрельбу.
if( bShooting )
<
Shoot(); //стреляем
>
Kano_Tanaka
> C#, сам язык я плохо знаю
Так учи язык и программирование в целом, раз уж собрался скрипты писать для игр. И такие вопросы сами отпадут.
Так в этом вопрос с самого начала и состоял: как указать программе промежуток времени, в который идёт перезарядка, и как проверить, что перезарядка(то бишь звук перезарядки) кончилась? А не в том, как ограничить стрельбу.
Kano_Tanaka
> как указать программе промежуток времени, в который идёт перезарядка, и как
> проверить, что перезарядка(то бишь звук перезарядки) кончилась?
Как сделать Задержку между ударами
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как в игре сделать задержку между пропаданием хп
using System.Collections; using System.Collections.Generic; using UnityEngine; using.
Как сделать задержку между командами
У меня есть код в котором три надписи подряд. Но я хочу добавить задержку между ними как это.
Добавлено через 6 минут
можно исползовать корутину. решения разные могут быть
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как сделать в программе задержку между кликом по кнопке и выполнением определенного кода
Здравствуйте! подскажите пожалуйста как сделать чтоб при нажатии на кнопку в progressbar.
Как прописать задержку между треками?
Есть готовый батник: for /r D:\myz %%i in (*.mp3) do start «» «%%i»&&>nul timeout /t 300 exit.
Как организовать задержку между созданием динамических кнопок?
Здравствуйте! Я новичок в C++ Прошу подсказать как можно организовать задержку 1 сек между.
Как создать задержку между переходами по страницам в WebBrowser
как заставить компонент webbrowser ждать несколько секунд перед тем как перейти на другую страницу.