Menu
CoddyTech

Gire a cada segundo

Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 4 de 67.

transform.Rotate(x, y, z) gira um GameObject o número correspondente de graus em torno de cada um de seus eixos. Chamado em Update(), ele gira um pouco a cada quadro, então o objeto continua girando.

Mas quantos quadros há em um segundo? Em um computador rápido, talvez 120; em um celular, talvez 30. Um simples transform.Rotate(0, 0, 5) giraria quatro vezes mais rápido no computador rápido. A resposta da Unity é Time.deltaTime: os segundos que passaram desde o último quadro. Multiplique uma velocidade por esse valor e ela será expressa por segundo, em qualquer dispositivo.

Aqui, uma roda gira em torno do eixo z, 45 graus por segundo:

public float speed = 45f;

void Update()
{
    transform.Rotate(0, 0, speed * Time.deltaTime);
}

A 60 quadros por segundo, Time.deltaTime é aproximadamente 0.0167, então a cada quadro gira 45 * 0.0167, cerca de 0.75 grau, e 60 desses valores totalizam 45. A 30 quadros por segundo, cada quadro gira o dobro da distância, e um segundo ainda totaliza 45.

challenge icon

Desafio

Fácil

O cubo tem um script Spinner com uma speed de 90. Em Update(), faça o cubo girar em torno do eixo y, a speed graus por segundo, em qualquer dispositivo.

Pressione Play para assistir e, em seguida, Check.

Experimente você mesmo

using UnityEngine;

public class Spinner : MonoBehaviour
{
    public float speed = 90f;

    void Update()
    {
        // Gire o cubo em torno do seu eixo y aqui
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Noções básicas de scripting no Unity