В Scene
в Unity3D, как я могу заставить код реагировать на действие только один раз в секунду в MonoBehaviour
в runloop?В единстве ограничьте реакцию на действие только один раз в 1 секунду?
ответ
Если вы находитесь в среде Unity3D, прекратите читать и смотрите на Joe Blow's answer. В противном случае продолжайте чтение.
0 Вы можете использовать команду Stopwatch
, чтобы рассказать о ваших событиях. Создайте один Stopwatch
как частное поле/свойство и инициализировать его из конструктора:
public YourClass()
{
ScoreStopwatch = new Stopwatch();
ScoreStopwatch.Start();
// Other initialization...
}
private Stopwatch ScoreStopwatch { get; set; }
Затем вы можете использовать Elapsed
свойство, чтобы получить время с момента последнего увеличения партитуры, как это:
if(Input.GetMouseButtonUp(0) && ScoreStopwatch.Elapsed.TotalSeconds > 1)
{
score++;
ScoreStopwatch.Reset();
ScoreStopwatch.Start();
}
Я получаю ошибку: '' Тип 'System.Diagnostics.Stopwatch 'не содержит определения для' Restart' и не может быть найден метод расширения 'Restart 'типа' System.Diagnostics.Stopwatch' (вам не хватает директивы using или ссылки на сборку?) '' –
@Brown Ах, это будет потому, что ['Stopwatch.Restart'] (https://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.restart (v = vs.110) .aspx) был добавлен только в .NET 4.0, вы должны использовать более старую версию. Я обновил свой код, чтобы не использовать какие-либо новые методы. –
Что. Net Version вы используете? Похоже, [Перезагрузка] (https://msdn.microsoft.com/de-de/library/system.diagnostics.stopwatch.restart.aspx) доступна с 4.0. – Corak
- 1. Снижение здоровья на 1 раз в секунду
- 2. Play framework, ограничьте действие, которое нужно сделать один раз
- 3. Ограничить действие только один раз на iPhone
- 4. Django. Ограничьте каждого пользователя только голосованием один раз
- 5. Окно LWJGL обновляет только один раз в секунду?
- 6. Android onLocationChanged только один раз в секунду быстрее всего
- 7. Запустить действие только один раз после установки
- 8. RSpec - действие «POST» вызывается только один раз
- 9. Primefaces remotecommand действие вызывается только один раз
- 10. Какое содержимое загружается один раз в секунду?
- 11. Повторить цикл один раз в секунду
- 12. Php cookie установлен только на 1 секунду?
- 13. ajax timeout работает только на 1 секунду
- 14. Как выполнить действие только один раз в jquery?
- 15. Vuforia в Unity Распознавание только один раз
- 16. AudioClip играет только один раз в Trigger
- 17. Использование таймера только один раз
- 18. Python - Как вычесть переменную 1 раз в секунду?
- 19. Как играть в звуковой сигнал один раз в секунду Cocos2d
- 20. Задержка цикла на 1 секунду
- 21. 403 ограничение скорости после только 1 вставки в секунду
- 22. Опрос переменной в QT один раз в секунду
- 23. Экспресс: запуск промежуточного программного обеспечения один раз в секунду
- 24. Фабрика в $ interval получает только один раз?
- 25. Вставьте несколько строк в mysql и ограничьте одну из строк, которые нужно ввести только один раз
- 26. Прерывание на PIC18 срабатывает только один раз
- 27. Как вы добавляете div в контейнер один раз в секунду?
- 28. Rails action вызывает только один раз, но я вызываю его каждую секунду в моем ajax
- 29. Android Создание переменной, которая увеличивается один раз в секунду
- 30. uilongpressgesturerecognizer пожар только один раз
Возможными дублировать [Как заблокировать скорость события без использования Rx Framework] (http://stackoverflow.com/questions/21400514/how-to-throttle-the-speed-of-an-event-without-using-rx -framework) –
'private DateTime _nextAllowedTime = DateTime.MinValue; public void YourMethod() {if (DateTime.Now <_nextAllowedTime) {return; } if (Input.GetMouseButtonUp (0)) {оценка ++; _nextAllowedTime = DateTime.Now.AddSeconds (1); }} ' – Corak
Вы используете Invoke и InvokeRepeating для таймеров в Unity – Fattie