Obter o tempo exato na Unity

2 respostas Resolvido
csharp
M4roto

Olá! Estou tentando criar um programa que imprima o tempo em segundos no console da Unity3d. Tentei fazer isso utilizando a classe Time e o método deltaTime, porém como essa função fornece o tempo em segundos entre cada frame subsequente, ocorre certo delay na exibição (dependendo do tempo que determinado frame demorou para ser processado). Como posso fazer isso com precisão?

public class PrintTimeScript : MonoBehaviour {

    private float getTime = 0f;
    private int index = 0;

    // Update is called once per frame
    void Update () {

        getTime += Time.deltaTime;
        if (getTime > index){
            print (index += 1);
        }
    }
}

2 Respostas

TerraSkilll
Solucao aceita

Ao invés de usar Update e ficar incrementando o tempo, tente com InvokeRepeating.

Outra possível abordagem é usar uma Corrotina, como sugerido aqui.

Abraço.

M4roto

Obrigado! Havia me deparado minutos atras com a ideia de usar o método InvokeRepeating. Tudo certo :slight_smile:

public class PrintTimeScript : MonoBehaviour {

	private int index = 0;

	// Update is called once per frame
	void Start () {
		InvokeRepeating ("PrintTime", 1, 1);
	}

	void PrintTime (){
		index += 1;
		print (index);
	}
}
Criado 12 de abril de 2018
Ultima resposta 13 de abr. de 2018
Respostas 2
Participantes 2