detaillierte Erklärung der Unity Delay Implementierung
]]Verzögerungen in der Einheit sind für die Verwaltung von Spielflüssen, das Sortieren von Ereignissen und die Simulation des realen Verhaltens von wesentlicher Bedeutung. Hier sind einige Möglichkeiten, um Verzögerungen zu erreichen:
1.
startCoroutine
waitForseconds
: Pause für eine bestimmte Zeit (von der Spielgeschwindigkeit betroffen). waitForsecondsRealtime
: Pause für eine bestimmte Zeit (nicht von Spielgeschwindigkeit betroffen). Beispiel:
2.
IEnumerator WaitForSecondsExample()
{
// 旋转90度
transform.Rotate(Vector3.right * 90);
// 等待4秒(不受游戏速度影响)
yield return new WaitForSecondsRealtime(4);
// 旋转40度
transform.Rotate(Vector3.right * 40);
// 等待2秒(受游戏速度影响)
yield return new WaitForSeconds(2);
// 旋转20度
transform.Rotate(Vector3.right * 20);
}
Rendite return null
Beispiel:
3.
waituntil : Die Ausführung wird nicht suspendiert, wenn die Bedingung wahr ist.
IEnumerator TimeBasedLoopExample()
{
// 旋转90度
transform.Rotate(Vector3.right * 90);
// 等待4秒(受游戏速度影响)
float timer = 0;
while (timer
Beispiel:
Ienumerator WaitUntilePlampe ()
{
// Warten Sie, bis die Punktzahl des Spielers 100 erreicht ist
Rendite Return New WaitUntil (() => PlayerCore> = 100);
// die nächste Stufe laden
SzeneManager.loadscene ("nexTlevel");
}
: ähnlich wie invoke , aber die Funktion wird wiederholt in bestimmten Zeitintervallen aufgerufen.
IEnumerator WaitUntilExample()
{
// 等待玩家分数达到100
yield return new WaitUntil(() => playerScore >= 100);
// 加载下一关
SceneManager.LoadScene("NextLevel");
}
invoke ("feeddog", 5);
InvokePeating ("MovePlayer", 0,5F, 0,2F);
]]
: Wird verwendet, um die Zeit zwischen Frames zu messen.
if
Anweisung Beispiel:
Invoke("FeedDog", 5); // 5秒后调用FeedDog()
InvokeRepeating("MovePlayer", 0.5f, 0.2f); // 每0.2秒调用MovePlayer(),持续0.5秒。
Löse dein Problem:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3