Patrzenie w przód
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 49 z 71.
Kamera wyśrodkowana na poruszającym się graczu pokazuje tyle samo miejsca, które gracz już przebył, co tego, w stronę którego zmierza. Zamiast tego możesz ustawić widok z boku: umieść kamerę kilka jednostek przed graczem, po stronie, w którą zmierza.
Strona zmienia się, gdy gracz zawraca, a natychmiastowa zmiana kierunku wyprzedzenia sprawia, że cały widok skacze. Dlatego przechowuj wyprzedzenie w polu i stopniowo przesuwaj je ku nowej wartości za pomocą Mathf.MoveTowards, odrobinę w każdej klatce. Ta kamera łodzi wyprzedza ją o 2 jednostki i przesuwa się z szybkością 3 jednostek na sekundę:
float lead;
float heading = 1f; // 1 płynie w prawo, -1 płynie w lewo
void LateUpdate()
{
lead = Mathf.MoveTowards(lead, heading * 2f, 3f * Time.deltaTime);
transform.position = new Vector3(boat.position.x + lead, transform.position.y, transform.position.z);
}Kierunek wskazuje, w którą stronę łódź poruszała się ostatnio: porównaj jej pozycję x z pozycją x z poprzedniej klatki i nie zmieniaj kierunku w klatce, w której łódź się nie poruszyła, aby stojąca w miejscu łódź zachowała wyprzedzenie.
Wyzwanie
ŚredniUstaw boczną kamerę tak, aby pokazywała więcej tego, dokąd biegnie postać.
- W metodzie
LateUpdate()porównaj współrzędną x postaci zlastX: ruch w prawo ustawiadirectionna 1, ruch w lewo na -1, a podczas postoju wartość pozostaje bez zmian. - Przesuwaj
shift = Mathf.MoveTowards(shift, direction * ahead, shiftSpeed * Time.deltaTime);. - Ustaw współrzędną x kamery na
player.position.x + shift, pozostawiając y i z bez zmian.
Naciśnij „Graj” i pobiegnij w obie strony. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class LookAheadCamera : MonoBehaviour
{
public Transform player;
public float ahead = 3f;
public float shiftSpeed = 4f;
void LateUpdate()
{
// Wyprzedzaj gracza o ahead jednostek w kierunku, w którym ostatnio się poruszał, przesuwając kamerę z prędkością shiftSpeed.
transform.position = new Vector3(player.position.x, transform.position.y, transform.position.z);
}
}
Wszystkie lekcje w sekcji Fizyka i rozgrywka
1Ciało sztywne
Grawitacja i masaPopychanie za pomocą AddForceSkok z impulsemFixedUpdate dla fizykiPrędkośćCiała kinematycznePowtórka: platforma startowa4Korutyny
WywoływanieInvokeRepeating i CancelInvokeTwoja pierwsza korutynaPętle w korutynachZatrzymywanie korutynPodsumowanie: odliczanie10Projekt: Ucieczka z areny
ArenaŁowcy2Kolizje
OnCollisionEnterW co uderzyłem?Rozbijanie przy zderzeniuStanie na podłożuOdbicie i tarcieKształty colliderówPodsumowanie: Zniszczalny mur5Projekt: Wyścig po monety
Tocząca się piłkaZbieranie monet3Wyzwalacze
Kolizje wyzwalająceOnTriggerEnterPrzedmioty do zebraniaSkrzynie zatrzymują resztęStrefy śmierciWejście i wyjściePodsumowanie: klucz i drzwiPoćwicz samodzielnie: Edytor online Unity