Floats e Mathf
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 9 de 67.
O Unity trabalha com float: posições, velocidades, ângulos e Time.deltaTime são todos valores float. O C# interpreta 0.5 como um double e não converte um double em float sem que isso seja especificado, pois poderia haver perda de precisão. Quase todo iniciante encontra dois erros de compilação como esses nos primeiros scripts:
float half = 0.5;geraCS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix.float s = Math.Sin(x);geraCS0266: Cannot implicitly convert type 'double' to 'float', porqueSystem.Mathtrabalha com doubles.
As correções: escreva literais float com f e use Mathf, a versão de Math do Unity que trabalha com float (Mathf.Sin, Mathf.Abs, Mathf.Sqrt, Mathf.PI). Esta boia oscilante apresentava os dois erros e compila depois desta alteração:
// antes: float y = 1 + Math.Sin(Time.time * 2) * 0.5;
float y = 1 + Mathf.Sin(Time.time * 2) * 0.5f;
transform.position = new Vector3(0, y, 0);Números inteiros, como 1 e 2, não precisam de sufixo: um int é convertido em float sem nenhuma perda.
Desafio
FácilO coração deve pulsar: seu tamanho vai de 1 até 1.5 e volta, três vezes por segundo, igualmente em todos os eixos. O script não compila. Corrija os erros na matemática de float do Unity e mantenha a fórmula igual.
Pressione Play para ver os erros no Console, corrija-os e depois clique em Check.
Experimente você mesmo
using System;
using UnityEngine;
public class Pulse : MonoBehaviour
{
void Update()
{
float size = 1 + Math.Abs(Math.Sin(Time.time * 3)) * 0.5;
transform.localScale = new Vector3(size, size, size);
}
}
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
1Seu primeiro script
Olá, UnityPosicione o cuboMova a cada quadroGire a cada segundoConduza com as teclasRecapitulando: dirija o cubo4Vetores
Adicionando vetoresDireçõesEspaço local e espaço do mundoVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone7Projeto: Pegue a Estrela
O ApanhadorUma Estrela Cadente10O ciclo de vida dos scripts
Awake e StartUpdate e LateUpdateOnEnable e OnDisableA ordem do ciclo de vidaRevisão: registrador do ciclo de vida5Transformações e Hierarquia
Pais e FilhosEscalaObserve as CoisasMova-se em Direção a um PontoRevisão: Lua em Órbita6GameObjects e Componentes
Referências no InspectorObter um ComponenteComponentes AusentesAdicionar um ComponenteRequireComponentMostrar e OcultarRevisão: Interruptor de Luz