Bewegliche Plattformen
Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 49 von 56.
Aufgabe
MittelDie blaue Plattform sollte über die Lücke hin und her gleiten. Behalte alles aus der letzten Lektion bei.
Vervollständige MovingPlatform:
- Zwei Felder, die im Inspector festgelegt werden:
distance(3) undspeed(1.5), sowie einpublic Vector3 delta. - Sie gleitet von ihrer Startposition
distanceEinheiten entlang +x mitspeedEinheiten pro Sekunde und dann wieder zurück zum Startpunkt, und so für immer weiter. - Bei jedem Frame gibt
deltaan, wie weit sie sich in diesem Frame bewegt hat: ihre Position nach der Bewegung minus ihre Position davor.
Ein CharacterController wird nicht von dem mitgenommen, worauf er steht: Auf einer beweglichen Plattform bleibt er an seiner Position, während die Plattform unter ihm weggleitet. Auch seine transform.position entlang der Bewegung zu verschieben, funktioniert nicht: Der nächste Aufruf von Move des Controllers beginnt dort, wo die Physik ihn zuletzt gesehen hat, und macht die Änderung rückgängig. Sorge dafür, dass Player mitfährt:
- Füge
OnControllerColliderHithinzu. Wenn die Normale des Treffers nach oben zeigt (hit.normal.yist größer als 0.5: der Spieler steht darauf) und das Objekt eineMovingPlatformhat, speichere diese Plattform in einem Feld. - Addiere in
Updatedasdeltadieser Plattform zu der Bewegung, die ancontroller.Moveübergeben wird, und vergiss dann die Plattform (setze das Feld aufnull). Der Aufruf vonMovefindet sie erneut, solange der Spieler darauf steht.
Drücke Play, springe auf die Plattform und fahre mit ihr, dann Check.
Probier es selbst
using UnityEngine;
public class MovingPlatform : MonoBehaviour
{
// In einer späteren Lektion wird dies ergänzt: eine Plattform, die hin und her gleitet.
}
Alle Lektionen in Echte Spiele entwickeln
1Text auf dem Bildschirm
Canvas und TextPunktestand anzeigenZahlen formatierenEin Countdown-TimerRückblick: Tachometer4Szenen und Level
Eine Szene ladenDas Level neu startenNächstes LevelZwischen Szenen beibehaltenRückblick: Levelauswahl10Projekt: 3D-Plattformer
Der ParcoursBewegliche Plattformen2Buttons und Bildschirme
Buttons und onClickLambdasVerknüpfungen im InspectorPanels ein- und ausblendenGesundheitsbalkenRückblick: Upgrade-Shop5Speichern mit PlayerPrefs
Eine Zahl speichernMit einem Standardwert ladenHöchstpunktzahlEinstellungen speichernRückblick: Münzen auf der Bank