J'ai une fonction particulière que j'appelle dans la fonction Update. Pendant les dix premières secondes, la fonction doit être appelée dans la fonction de mise à jour, puis elle doit être désactivée pendant les deux secondes suivantes, puis à nouveau l'activer pendant les dix secondes suivantes. Ce cycle devrait continuer à se répéter? Comment puis-je l'exécuter?
10
Repeat()
et%
(module)? La documentation dit "c'est similaire à l'opérateur modulo mais cela fonctionne avec des nombres à virgule flottante" , mais le module fonctionne avec des flottants ...%
opérateur agit souvent bizarrement - soit ne fonctionne pas avec des nombres à virgule flottante, donne des résultats inattendus ou carrément incorrects pour le fonctionnement du module dans sa signification mathématique (reflétant la nature matérielle de l'opération sur les entiers).Repeat()
a été choisi comme une option plus sûre pour éviter d'avoir à rechercher l'implémentation exacte de l'%
opérateur en C # / mono.Je n'ai pas testé le code suivant, mais vous aurez l'idée:
la source
deltaTime
est relativement court. Si le delta est plus long,sleepDuration
cela échouera.Vous pouvez également le faire avec une coroutine. Quelque chose comme
la source