Gire a cada segundo
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 11 de 85.
transform.Rotate(x, y, z) gira um GameObject o número de graus indicado em torno de cada um dos seus eixos. Quando 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 do Unity é Time.deltaTime: os segundos que passaram desde o último quadro. Multiplique uma velocidade por esse valor, e a velocidade será 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 é cerca de 0.0167, então a cada quadro ela gira 45 * 0.0167, cerca de 0.75 grau, e 60 desses giros somam 45. A 30 quadros por segundo, ela gira o dobro a cada quadro, e um segundo ainda totaliza 45.
Desafio
FácilFaça o cubo girar em torno do eixo y a speed graus por segundo.
- Em
Update(), chametransform.Rotate(x, y, z). - Coloque
speed * Time.deltaTimeno número do meio, para y, e0para x e z. A roda acima girou em z; este cubo gira em y.
Pressione “Jogar”: o cubo dá um quarto de volta por segundo. Depois, pressione “Verificar”.
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
}
}
Todas as lições de Fundamentos de Scripting no Unity
1Fundamentos de C# no Unity
Olá, UnityVariáveisDecimais precisam de um fTexto no ConsoleVariáveis que guardam valoresIf e ElseComparar númerosRevisão: Coletor de Moedas7Laços e Métodos
Repita com forLaços dentro de laçosEscreva um métodoMétodos que respondemArraysRevisão: Escada10Encontrando coisas
Buscar pelo nomeTagsBuscar por tipoReferências são melhores que FindO null do UnityRevisão: moeda mais próxima13Projeto: Desvie dos Blocos
O CorredorBlocos do Céu2Faça-o se mover
Posicione o cuboMova a cada quadroGire a cada segundoDirija com as teclasRecapitulando: dirija o cubo5Vetores
Somando vetoresDireçõesEspaço local e globalVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone8GameObjects e Componentes
Referências no InspectorObter um componenteComponentes ausentesAdicionar um componenteRequireComponentMostrar e ocultarRevisão: Interruptor de luz6Transformações e hierarquia
Pais e filhosIçar a bandeiraEscalaOlhar para as coisasMover-se em direção a um pontoRevisão: Lua em órbita9Projeto: Pegue a Estrela
O PegadorUma Estrela CadentePratique por conta própria: Playground de Unity