Escala
Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 25 de 67.
transform.localScale multiplica o tamanho de um objeto ao longo de cada um dos seus eixos. Um cubo padrão tem 1 unidade em cada lado, então um cubo com localScale (4, 1, 0.5) tem 4 unidades de largura, 1 de altura e meia unidade de profundidade. Para um tamanho uniforme, multiplique Vector3.one, que é (1, 1, 1). Essa bolha de sabão cresce 0.3 por segundo até atingir 3 unidades de largura:
public float size = 1f;
void Update()
{
size = Mathf.Min(size + 0.3f * Time.deltaTime, 3f);
transform.localScale = Vector3.one * size;
}Mathf.Min(a, b) retorna o menor dos dois números, então size cresce até chegar a 3 e depois permanece em 3.
A escala é aplicada em torno do pivô do objeto, que, nas formas integradas do Unity, fica no centro. Um cubo de 1 unidade apoiado no chão tem seu centro em y = 0.5. Se você o escalar para 3 unidades de altura, ele se estende 1.5 para cima e 1.5 para baixo a partir desse ponto, então metade dele afunda no chão. Para ficar apoiado no chão, seu centro precisa estar na metade da sua altura: y = 1.5.
O tamanho de um objeto filho é multiplicado pelo do pai: um filho com localScale (1, 1, 1) sob um pai escalado por 2 é renderizado com o dobro do tamanho. transform.lossyScale lê esse tamanho final no mundo e é somente leitura; localScale é o que você define.
Desafio
MédioO cubo de gelo está derretendo. Desde o início do jogo, ele encolhe em cada eixo por melt (0.2) por segundo, partindo do tamanho 1 até chegar a 0.4, e então permanece desse tamanho.
Encolher ao redor do centro faria com que ele ficasse flutuando, então mantenha a parte inferior no chão (em y = 0) o tempo todo. Seus valores de x e z não mudam.
Pressione Play para vê-lo derreter e, em seguida, Check.
Experimente você mesmo
using UnityEngine;
public class Melt : MonoBehaviour
{
public float melt = 0.2f;
void Update()
{
// Encolha em melt por segundo, até chegar a 0.4, mantendo a base no chão
}
}
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