Menu
CoddyTech

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.

challenge icon

Desafio

Médio

O 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
    }
}
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