Menu
CoddyTech

Dodawanie wektorów

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 17 z 67.

Wektor Vector3 można przechowywać w zmiennej, a dwa takie wektory można dodawać za pomocą +: x dodaje się do x, y do y, a z do z. W ten sposób dwa pchnięcia łączą się w jeden ruch. Ta piłka plażowa toczy się do przodu z prędkością 2 jednostek na sekundę, a wiatr wieje ją w prawo z prędkością 1 jednostki na sekundę:

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

Mnożenie wektora przez liczbę mnoży każdą jego składową: wind * 3 to (3, 0, 0), czyli wichura, a move * Time.deltaTime zamienia ruch na sekundę w ruch w tej klatce. Odejmowanie również działa składowa po składowej, a a - b to krok prowadzący z punktu b do punktu a. Między dwoma wektorami nie można użyć *: roll * wind się nie kompiluje.

challenge icon

Wyzwanie

Łatwy

Prąd rzeki current zawsze niesie łódź. Gdy przytrzymujesz strzałkę w górę, łódź napędza również motor, oprócz prądu. Obie wartości określają ruch w jednostkach na sekundę i są ustawione w Inspectorze: prąd to (1, 0, 0), a silnik (0, 0, 3).

Naciśnij Play i przepłyń rzekę, używając strzałki w górę, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

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

    void Update()
    {
        // Prąd zawsze niesie łódź.
        // Gdy strzałka w górę jest przytrzymana, silnik również pcha łódź.
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy skryptów w Unity