Ruchome platformy
Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 49 z 56.
Wyzwanie
ŚredniNiebieska platforma powinna przesuwać się tam i z powrotem nad przepaścią. Zachowaj wszystko z poprzedniej lekcji.
Uzupełnij MovingPlatform:
- Dwa pola ustawiane w Inspectorze:
distance(3) ispeed(1.5), orazpublic Vector3 delta. - Przesuwa się od miejsca, w którym zaczyna, o
distancejednostek wzdłuż osi +x z prędkościąspeedjednostek na sekundę, a potem wraca na początek i tak bez końca. - W każdej klatce
deltaokreśla, jak daleko platforma przesunęła się w tej klatce: jej pozycja po przesunięciu minus pozycja przed nim.
CharacterController nie jest przenoszony przez obiekt, na którym stoi: na ruchomej platformie pozostaje w miejscu, a platforma przesuwa się spod niego. Przesuwanie jej za pomocą transform.position również nie działa: następne wywołanie Move kontrolera zaczyna od miejsca, w którym fizyka widziała go po raz ostatni, i cofa zmianę. Spraw, by Player poruszał się razem z platformą:
- Dodaj
OnControllerColliderHit. Gdy normalna uderzenia jest skierowana w górę (hit.normal.yma wartość większą niż 0.5: gracz stoi na obiekcie), a obiekt ma komponentMovingPlatform, zapisz tę platformę w polu. - W
Updatedodajdeltatej platformy do ruchu przekazywanego docontroller.Move, a potem usuń odwołanie do platformy (ustaw pole nanull). WywołanieMoveponownie ją wykryje, dopóki gracz będzie na niej stał.
Naciśnij Play, wskocz na platformę i jedź na niej, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
public class MovingPlatform : MonoBehaviour
{
// W późniejszej lekcji zostanie to uzupełnione: platforma poruszająca się tam i z powrotem.
}
Wszystkie lekcje w sekcji Tworzenie prawdziwych gier
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz4Sceny i poziomy
Wczytaj scenęUruchom poziom ponownieNastępny poziomZachowaj między scenamiPodsumowanie: wybór poziomu10Projekt: platformówka 3D
TrasaRuchome platformy2Przyciski i ekrany
Przyciski i onClickLambdyPodłączanie w InspectorzeWłączanie i wyłączanie paneliPaski zdrowiaPodsumowanie: sklep z ulepszeniami5Zapisywanie za pomocą PlayerPrefs
Zapisz liczbęWczytywanie z wartością domyślnąNajlepszy wynikZapisz ustawieniaPodsumowanie: monety w banku