Menu
CoddyTech

Adicionando vetores

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

Um Vector3 pode ser armazenado em uma variável, e dois deles são somados com +: x é somado a x, y a y e z a z. É assim que dois empurrões se combinam em um único movimento. Esta bola de praia rola para a frente a 2 unidades por segundo enquanto o vento a sopra 1 unidade por segundo para a direita:

Vector3 roll = new Vector3(0, 0, 2);
Vector3 wind = new Vector3(1, 0, 0);

void Update()
{
    Vector3 move = roll + wind;   // (1, 0, 2)
    transform.position += move * Time.deltaTime;
}

Multiplicar um vetor por um número multiplica cada uma de suas partes: wind * 3 é (3, 0, 0), uma tempestade, e move * Time.deltaTime transforma um movimento por segundo no movimento deste quadro. A subtração também funciona parte por parte, e a - b é o passo que leva do ponto b ao ponto a. Não existe * entre dois vetores: roll * wind não compila.

challenge icon

Desafio

Fácil

A current do rio sempre carrega o barco. Enquanto a seta para cima estiver pressionada, o motor do barco também o impulsiona, além da correnteza. Ambos são movimentos em unidades por segundo, definidos no Inspector: a correnteza é (1, 0, 0) e o motor (0, 0, 3).

Pressione Play e atravesse o rio usando a seta para cima; depois, pressione Check.

Experimente você mesmo

using UnityEngine;

public class Boat : MonoBehaviour
{
    public Vector3 current = new Vector3(0, 0, 0);
    public Vector3 motor = new Vector3(0, 0, 0);

    void Update()
    {
        // A correnteza sempre leva o barco.
        // Enquanto a seta para cima estiver pressionada, o motor também impulsiona o barco.
    }
}
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