Menu
CoddyTech

Prędkość po przekątnej

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

Przytrzymaj jednocześnie strzałki w prawo i w górę, a surowe osie wskażą kierunek (1, 0, 1). Jego długość, .magnitude, to pierwiastek kwadratowy z 1 + 1, czyli około 1.41. Postać poruszająca się w tym kierunku pokonuje po przekątnej 1.41 jednostki w czasie, w którym pokonuje 1 jednostkę na wprost: jest o 41% szybsza.

.normalized zwraca kopię wektora wskazującą ten sam kierunek i mającą dokładnie 1 jednostkę długości: (1, 0, 1) zmienia się w około (0.71, 0, 0.71), a (0, 0, 5) zmienia się w (0, 0, 1). Po pomnożeniu przez prędkość wektor ten zapewnia ruch z tą prędkością niezależnie od kierunku. Ta pszczoła leci w stronę kwiatu z prędkością 2 jednostek na sekundę, niezależnie od tego, czy kwiat jest blisko, czy daleko; bez .normalized leciałaby szybciej, im dalej znajdowałby się kwiat:

public Vector3 flower = new Vector3(4, 1, 3);
public float speed = 2f;

void Update()
{
    Vector3 toFlower = flower - transform.position;
    transform.position += toFlower.normalized * speed * Time.deltaTime;
}

Vector3.zero.normalized pozostaje równe (0, 0, 0), ponieważ zero nie ma kierunku. v.normalized pozostawia v bez zmian; v.Normalize() zmienia samo v.

challenge icon

Wyzwanie

Łatwy

Napisz ruch wędrowca. Strzałki (lub WASD), odczytywane za pomocą surowych osi, przesuwają go w lewo i w prawo wzdłuż osi x oraz w górę i w dół wzdłuż osi z. Porusza się z prędkością speed jednostek na sekundę w każdym kierunku, także po przekątnej, natychmiast rusza i się zatrzymuje, a gdy nie jest wciśnięty żaden klawisz, pozostaje w miejscu.

Naciśnij Play, idź prosto i po przekątnej, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

public class Walker : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // Strzałki lub WASD: poruszaj się wzdłuż osi x i z z prędkością speed, taką samą po skosie.
    }
}
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