UFO-Rodeo
Sie kommen, um deine Kühe zu holen, aber du hast noch ein paar Tricks auf Lager. Benutze deinen superstarken Viehtreiber, um anfliegende UFOs zu zappen und deine Herde zu retten.

Gestalten Sie es ganz nach Ihren Wünschen mit den Beispielprojekten.

Studio: Score System
This project demonstrates a simple score tracking system using Niantic Studio.
View sample project
Studio: Roaming Entities
This project showcases how to make roaming entities in Niantic Studio.
View sample project
Studio: Spawning System
This project demonstrates how to dynamically spawn 3D entities using a custom component in Niantic Studio.
View sample projectBehind the Build: UFO Rodeo

Written by UFO Rodeo Team
March 26, 2025
Introduction
Der Farmer Joe Zamora sieht schon seit langem seltsame Lichter am Himmel über seiner Rinderfarm in New Mexico, aber jetzt kommen sie, um seine Kühe zu holen.
Glücklicherweise sind ihre Hightech-UFOs dem Einfallsreichtum seines Landes nicht gewachsen.
Benutze deinen superstarken Viehtreiber, um die herannahenden UFOs vom Himmel zu holen, bevor sie deine Rinder an Bord beamen können. Entferne so viele wie möglich, bevor du alle deine Kühe verlierst.
UFO Rodeo hat viele Teile, die es zum Laufen bringen. Daher haben wir es in drei Hauptbeispielprojekte unterteilt, um seine Funktionsweise zu veranschaulichen. Sie können den Code des kompletten UFO Rodeo und der dazugehörigen Funktionen gerne klonen, um mehr zu erfahren.
Score Counter Sample Project
Dieses Projekt zeigt ein einfaches Punktesystem mit Niantic Studio. Sie lernen, wie Sie:
- Erhöhen oder verringern Sie eine Punktzahl, wenn Sie auf verschiedene Elemente tippen.
- Die Punktzahl in Echtzeit auf einem UI-Element anzeigen und aktualisieren.
- Einfache Partikeleffekte auslösen, wenn sich die Punktzahl ändert.
Projektstruktur
Nachfolgend finden Sie eine kurze Übersicht über die wichtigsten Ordner und Dateien:
├── assets/ // Zusätzliche Medienressourcen (Bilder, Modelle usw.)
├── counter.ts // Hauptskript, das die Komponente "Score Counter" definiert
├── cleanup.ts // Dienstprogramm zum Bereinigen von Ereignis-Listenern
└── README.md // Diese README-Datei
Hierarchie Übersicht über Entitäten
- counter
- Eine Entität, der die Komponente hinzugefügt wurde.
- Konfiguriert Verweise auf die Inkrement-Entität, die Dekrement-Entität und die UI-Score-Entität.
- Inkrement-Entität
- Ein 3D-Objekt (z. B. der violette Würfel), das die Punktzahl erhöht, wenn es angetippt wird.
- Decrement Entity
- Ein weiteres 3D-Objekt, das die Punktzahl verringert, wenn es angetippt wird.
- Score UI Entity
- Ein textbasiertes UI-Element oder ein 3D-Text, der die aktuelle Punktzahl anzeigt.
Funktionsweise
- Zählerkomponente
- Registriert in . Der ECS bezieht sich auf drei entscheidende Eigenschaften:
- angeklickt, um die Punktzahl zu erhöhen.
- Tippen, um die Punktzahl zu verringern.
- Der Text oder das UI-Element, das die aktuelle Punktzahl anzeigt.
- Registriert in . Der ECS bezieht sich auf drei entscheidende Eigenschaften:
- Ereignis-Listener
- Das Skript verwendet Ereignisse auf den Inkrement- und Dekrement-Entitäten, um die Punktzahl anzupassen.
- Punktzahl
- -Aktualisierungen & UI-
-
-
-
- Jedes Mal, wenn sich die Punktzahl ändert, ruft das Skript auf, wodurch der Text auf dem Bildschirm
- aktualisiert
-
- wird.
- Partikeleffekte
-
-
- Die Funktion erzeugt einen zufälligen Partikelausbruch auf der Entität, die angetippt wurde, und
-
- fügt
-
- so ein zusätzliches visuelles Feedback
-
- hinzu
-
- .
-
- Bereinigung
- Wenn die Komponente entfernt wird, stellen Sie sicher, dass Ereignis-Listener und Referenzen gelöscht werden, um Speicherlecks zu vermeiden .
Erste Schritte
- Klonen oder Importieren dieses Projekts
- Klonen Sie dieses Beispielprojekt von dieser Seite in Ihren Arbeitsbereich: https://www.8thwall.com/uforodeo/score-system
- Ersetzen Sie die Geometrien "increment" und "decrement" durch die gewünschten Objekte/Modelle
- Wenn Sie die Modelle oder Namen der Objekte ändern, aktualisieren Sie deren Verweise in den Dropdown-Menüs der Zählerkomponenten.
- V
-
- orschau
- Klicken Sie auf die Schaltfläche "Build" und testen Sie die Anwendung auf Ihrem Gerät oder mit dem Simulator. Durch Antippen der Inkrement-/Dekrement-Objekte sollte die angezeigte Punktzahl aktualisiert und Partikeleffekte ausgelöst werden.
Anpassung
- Anfangspunktzahl
- Sie können das Feld ändern, wenn Sie eine Startpunktzahl ungleich Null wünschen.
- Partikeleffekte
- Passen Sie die Eigenschaften in (z. B. , , , usw.) an, um das Aussehen und Verhalten der Partikelwolke zu ändern.
- Punktestand-UI-Stil
- Je nach ausgewähltem Typ können Sie das Design über das Studios-UI-System oder benutzerdefiniertes CSS anpassen, wenn Sie 2D-HTML-Overlays verwenden.
Fehlerbehebung
- Punktestand wird nicht aktualisiert
- Stellen Sie sicher, dass Sie im Inspektor die richtigen Entitäten für Inkrement, Dekrement und Punktzahl zugewiesen haben.
- Überprüfen Sie, ob Sie die Komponente als benutzerdefinierte Komponente an Ihr Zählerobjekt angehängt haben.
- Keine Partikeleffekte
- Überprüfen Sie, ob die Funktion über ein gültiges Sprite verfügt und ob die Entität einen Partikelemitter unterstützt.
Roaming Entities Tutorial
Dieses Projekt zeigt, wie man mit Niantic Studio Roaming-3D-Objekte (in diesem Fall UFOs) erstellen kann. Sie lernen, wie Sie:
- Weisen Sie 3D-Modellen in Ihrer Szene eine benutzerdefinierte Komponente zu.
- Entitäten mithilfe einer einfachen Zustandsmaschine zwischen zufälligen Positionen verschieben und animieren.
- Erkennen Sie Kollisionen und lösen Sie Partikeleffekte für visuelles Feedback aus.
Projektstruktur
├── assets/│ └── ufo.glb // 3D-Modell des UFOs
├── roaming_entity.ts // Hauptskript, das die Komponente "roaming_entity" definiert
├── cleanup.ts // Dienstprogramm zum Bereinigen von Ereignis-Listenern
└── README.md // Diese README-Datei
Wichtige Dateien
- Definiert eine Komponente mit einer Zustandsmaschine (/) zum Bewegen des UFOs an zufällige Positionen.
- Richtet Kollisionserkennungen, Positionen und Kollisions-Listeners ein, die Partikeleffekte auslösen.
- Stellt Hilfsfunktionen (, ) zum Entfernen von Ereignissen und Referenzen bereit, wenn eine Komponente entfernt wird.
So funktioniert es
- Roaming Entity Component
- Registriert in. Das UFO wird zunächst platziert und dann einem Zylinder-Kollidierer zugewiesen.
- Ein Kollisions-Listener wird ausgelöst und erzeugt einen kurzen Partikelausbruch.
- Zustandsmaschine
- PING → PONG-Zyklus:
- Beim Eintritt in jeden Zustand wechselt das UFO über
- zu einer neuen zufälligen Position.
- Eine zufällige Verzögerung bestimmt, wie lange es dauert, bis es wieder den Zustand wechselt, wodurch ein kontinuierliches Umherwandern entsteht.
- PING → PONG-Zyklus:
- Kollisionsbehandlung
- wird verwendet. Wenn das UFO kollidiert, werden Partikel ausgestoßen.
- Nach kurzer Zeit werden der Partikelemitter und eine Rotationsanimation entfernt, wodurch das UFO für die nächste Kollision zurückgesetzt wird.
- Bereinigung
- Ereignis-Listener für die Kollision werden verfolgt und später entfernt, um Speicherlecks zu vermeiden, wobei und verwendet werden.
Erste Schrit
te- Dieses Projekt klonen
- Klonen Sie dieses Beispielprojekt von dieser Seite in Ihren Arbeitsbereich: https://www.8thwall.com/uforodeo/roaming-entities
- Weisen Sie die Komponente zu
- Wenn Sie Modelle/Entitäten aus den UFOs hinzufügen oder ändern, stellen Sie sicher, dass Sie die benutzerdefinierte Komponente "roaming_entity.ts" an jedes einzelne anfügen.
- Überprüfen oder tauschen Sie die Assets aus
- Wenn Sie Ihr eigenes Modell verwenden, ersetzen Sie die Referenz "assets/ufo.glb" in der Komponentendatei "roaming+entity.ts".
- Erstellen Sie " & ". Vorschau
- Klicken Sie auf "Build", um das Projekt auszuführen oder zu veröffentlichen.
- Beobachten Sie, wie Ihre Objekte durch die Szene schweben, gelegentlich kollidieren und Partikeleffekte erzeugen.
Anpassung
- Bewegungseinstellungen
- Bearbeiten Sie diese, um zufällige Abstände fein abzustimmen oder neue Min-/Max-Positionen festzulegen.
- Passen Sie diesen Wert an, um die Bewegung zu beschleunigen oder zu verlangsamen.
- Partikeleffekte
- Passen Sie in Eigenschaften wie , , und an, um das Aussehen des Bursts zu ändern.
- Kollisionsform und -größe
- Ersetzen Sie den Zylinder-Kollidierer durch oder eine andere Form, wenn Sie möchten. Ändern Sie die Größe, um Ihren Objekten mehr Platz zu anderen Objekten zu geben, bevor sie kollidieren.
- Animation Easing
- Experimentieren Sie mit verschiedenen Werten (, , , usw.), um die Bewegungsstil der Objekte anzupassen .
Fehlerbehebung
- Keine Bewegung
- Stellen Sie sicher, dass die Komponente im Inspektor an jedem UFO angebracht ist.
- Überprüfen Sie, ob die Zustandsübergänge ( → ) ausgelöst werden (überprüfen Sie die Konsolenprotokolle).
- Keine zufälligen Bewegungen
- Überprüfen Sie, ob die Funktion gültige Zahlen zurückgibt.
- Passen Sie den Zufallsbereich oder die Mindestpositionen so an, dass sie im Kamerabereich bleiben.
Tutorial zum Spawning-System
Dieses Projekt zeigt, wie Sie mit einer benutzerdefinierten "Spawner"-Komponente in Niantic Studio dynamisch 3D-Entitäten spawnen können. Sie lernen, wie Sie:
- Automatisches Laden und Platzieren mehrerer Instanzen eines 3D-Modells in der Szene.
- Spawn-Einstellungen wie entityAmount und spawnSpeed konfigurieren.
- Verwenden Sie einfache ECS-Zustandsmaschinen, um das Laden von Assets und Ereignisübergänge zu koordinieren.
Beschreibung "
" Das Beispiel "Spawning System" zeigt eine "Spawner"-Komponente, die regelmäßig neue 3D-Entitäten (z. B. Kühe) erstellt. Jede erzeugte Entität erhält ein Modell, eine grundlegende Animation, einen Kollisionskörper und eine zufällige Position in der Nähe der Kamera. Dieses Setup zeigt, wie das Entity Component System (ECS) von Niantic die Erstellung und Erstkonfiguration mehrerer Objekte im Handumdrehen bewältigen kann.
Projektstruktur
Nachfolgend finden Sie eine kurze Übersicht über die wichtigsten Ordner und Dateien:
.
├── assets/ // Zusätzliche Medienressourcen (das Modell "cow.glb")
├── spawner.ts // Hauptskript, das die Spawner-Komponente definiert
└── README.md // Diese README-Datei
Wichtige Dateien
- Definiert die Komponente, die steuert, wie viele Entitäten gespawnt werden, in welchem Intervall sie gespawnt werden und wie sie positioniert werden.
- Verwendet eine einfache Zustandsmaschine, um die "Ladephase" (Spawnen von Entitäten) und einen abschließenden "Fertig"-Zustand zu verarbeiten, sobald alle Objekte erstellt wurden.
Übersicht über Hierarchie-Entitäten
- Spawning-System-Entität
- Eine Entität, an die die Komponente angehängt ist.
- Konfiguriert Referenzen für die Anzahl der zu generierenden Entitäten () und die Verzögerung zwischen den Generierungen ().
- Spawned Entities (Cows)
- Werden automatisch während des LOADING-Zustands des Spawners erstellt.
- Jede erhält:
- GltfModel (das Kuhmodell).
- ScaleAnimation (Skalierung von 0,1 auf 1).
- Collider (zylindrische Form).
- Eine zufällige Position in der Nähe der aktiven Kamera.
Funktionsweise
- Spawner-Komponente
- Registriert in . Das ECS verweist auf zwei wichtige Eigenschaften:
- : Anzahl der zu generierenden Entitäten.
- : Millisekunden zwischen den Spawns.
- Registriert in . Das ECS verweist auf zwei wichtige Eigenschaften:
- Zustandsmaschine
- LOADING (initial): Iteriert bis zu, erstellt eine neue Entität in Intervallen von.
- Jede generierte Entität lädt ein Kuhmodell, fügt eine ScaleAnimation hinzu und legt ihre Position und Kollision fest.
- Nach Abschluss der Schleife wechselt ein Trigger in den Status DONE.
-
- Zufällige
- Positionierung
-
Für
- jede Entität wird eine zufällige x-Koordinate (zwischen -4 und 4) ausgewählt, während die z-Position hinter der Kamera versetzt wird. Die
- y-Koordinate liegt etwas über dem Boden.
- DONE-Zustand
- Sobald alle Entitäten gespawnt sind, "alles fertig!wird protokolliert. Sie können diesen Status verwenden, um zusätzliche Logik auszuführen, z. B. das erneute Auslösen der Spawns oder das Umschalten von UI-Elementen.
Erste Schritte
- Dieses Projekt klonen oder importieren
- Öffnen Sie Niantic Lightship Studio und importieren oder klonen Sie dieses Beispielprojekt in Ihren Arbeitsbereich.
- Weisen Sie die Spawner-Komponente zu
- Erstellen/wählen Sie in der Szenenansicht eine Entität aus und fügen Sie die Komponente aus dem Skriptfenster Ihres Projekts hinzu.
- Konfigurieren Sie in Inspector
- Verwenden Sie das Feld "entityAmount", um festzulegen, wie viele 3D-Modelle Sie spawnen möchten.
- Passen Sie die spawnSpeed (in Millisekunden) an, um zu steuern, wie schnell jedes Modell erscheint.
-
- Klicken Sie auf "Build" oder "Publish".
- Beobachten Sie, wie die neuen Entitäten (Kühe) nacheinander in der Nähe Ihrer Kamera erscheinen, bis die Gesamtzahl erreicht ist.
Anpassung
- Modell & Animation
- Ändern Sie den Wert, wenn Sie ein anderes Modell wünschen.
- Ändern Sie die Animation oder entfernen Sie sie, um ein statisches Modell zu erhalten.
- Kollisionsform
- Probieren Sie verschiedene Typen aus (z. B. , ), um mit Kollisionen oder dem physikalischen Verhalten zu experimentieren.
- Spawn-Muster
- Passen Sie die zufälligen Versätze in an, um Entitäten unterschiedlich zu verteilen.
- Ändern Sie oder zur Laufzeit, um dynamischere Erlebnisse zu schaffen.
- Zusätzliche Logik
- Im Status "FERTIG" können Sie zusätzliche Schritte hinzufügen (z. B. eine Benutzeroberfläche "Spawn abgeschlossen" anzeigen, eine spezielle Animation auslösen oder den Spawner erneut ausführen).
Fehlerbehebung
- Entitäten werden nicht angezeigt
- Stellen Sie sicher, dass die Komponente korrekt an eine Entität angehängt ist.
- Überprüfen Sie, ob die Datei im Ordner vorhanden ist und der Pfad übereinstimmt.
- Zu schnelles oder zu langsames Spawnen "
"
- Passen Sie den Wert im Inspektor an Ihre Bedürfnisse an.
- Kollisionserkennung funktioniert nicht
- Stellen Sie sicher, dass die neu erzeugten Entitäten gültige Einstellungen haben.
Viel Spaß mit schwebenden Kühen und beim Erkunden, wie Sie 3D-Modelle in Ihren Niantic Studio-Projekten dynamisch erstellen können!