explicação detalhada da implementação de atraso da unidade
]A criação de atrasos na unidade é essencial para gerenciar fluxos de jogos, classificar eventos e simular o comportamento do mundo real. Aqui estão algumas maneiras de alcançar o atraso:
1.
startCoroutine
waitforseconds
: pausa a execução por um tempo especificado (afetado pela velocidade do jogo). waitforsecondsRealTime
: pausa a execução por um tempo especificado (não afetado pela velocidade do jogo). Exemplo:
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);
}
ou para loop de
: aumente gradualmente o cronômetro até que o valor desejado seja atingido.
rendimento retornar null
: Pausar a execução de um quadro.
ienumerator timebasedloopexample ()
{
// gira 90 graus
transform.rotate (vetor3.right * 90);
// Aguarde 4 segundos (afetado pela velocidade do jogo)
Timer de flutuação = 0;
While (timer 3.
IEnumerator TimeBasedLoopExample()
{
// 旋转90度
transform.Rotate(Vector3.right * 90);
// 等待4秒(受游戏速度影响)
float timer = 0;
while (timer
: A execução não é suspensa até que a condição seja verdadeira.
esperawhile
: Pausar a execução quando a condição é verdadeira.
ienumerator waituntilexample ()
{
// Aguarde a pontuação do jogador atingir 100
Retorno de rendimento novo waituntil (() => playerscore> = 100);
// Carregar o próximo nível
SceNemanager.loadscene ("NextLevel");
} 4.
: agende uma função a ser executada após um atraso especificado.
IEnumerator WaitUntilExample()
{
// 等待玩家分数达到100
yield return new WaitUntil(() => playerScore >= 100);
// 加载下一关
SceneManager.LoadScene("NextLevel");
}
: semelhante a Invoke , mas a função é chamada repetidamente em intervalos de tempo especificados.
Invoke ("FeedDog", 5);
Invokerepeating ("MovePlayer", 0,5F, 0,2F);
]
time.deltatime
: usado para medir o tempo entre os Frames.
se
Invoke("FeedDog", 5); // 5秒后调用FeedDog()
InvokeRepeating("MovePlayer", 0.5f, 0.2f); // 每0.2秒调用MovePlayer(),持续0.5秒。
Exemplo:
Resolva seu problema:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3