Erstelle dein erstes Spiel

Ein Spiel mit dem Spielplatz zu machen ist super einfach! Lasst uns ein sehr einfaches Action-Spiel machen, in dem ein Raumschiff herumfliegt und versucht, einige Asteroiden zu vermeiden.

Hinweis: Um den Spielplatz zu benutzen, müssen Sie einige Unity-Grundlagen (Interface, Spielobjekte, Prefabs) kennen, die hier nicht erläutert werden. Wenn Sie ein absoluter Anfänger sind, empfehlen wir Ihnen, zuerst das Thema Schnittstelle & Grundlagen durchzugehen.

1 - Erstellen des Spielers

Ziehen Sie zunächst ein Raumschiffbild aus dem Ordner /Images/Spaceships direkt in das Hierarchiefenster. Da es als Sprite importiert wurde, erstellt Unity ein Spielobjekt für dich. Dies wird der Spieler sein, also rufen wir das Objekt 'Ship' auf und markieren dieses Spielobjekt oben im Inspektorfenster mit dem Dropdown-Link Tag als 'Player'. Wir werden später auf die Tags zurückkommen.

Das Objekt ist nun als Spieler gekennzeichnet.

Lasst uns das Schiff sofort in Bewegung setzen. Wir brauchen zwei Komponenten: Move was die Interaktivität bereitstellt und einen Rigidbody2D, um sicherzustellen, dass das Schiff den Gesetzen der Physik folgt. Ziehen wir ein Move-Skript aus dem Ordner /Scripts/Movement auf den Inspektor des Schiffes.

Wenn das Ziehen ein Problem ist, können Sie auch das Dropdown-Menü Add Component direkt am unteren Rand des Inspektors verwenden und dann'verschieben' eingeben. Das Skript sollte als erstes Ergebnis erscheinen.

Das Dropdown-Menü Komponente hinzufügen im Inspektor

Hinweis: Szene Gizmos

Es kann vorkommen, dass die Symbole für das Playground-Skript riesig sind und Ihre Grafiken bedecken.

Das Move-Symbol deckt das gesamte Schiff ab!

In diesem Fall können Sie die Größe reduzieren, indem Sie das Dropdown-Menü Gizmos in der Szenenansicht verwenden. Ziehen Sie den Schieberegler 3D-Symbole nach links, bis die Symbole die richtige Größe haben.

Der Schieberegler 3D-Icons steuert die Größe des Gizmos in der Szene.

2 - Abstimmung der Physik

Jetzt müssen wir die physikalischen Werte unseres Schiffes anpassen. Bei der RigidBody2D Komponente wollen wir die Schwerkraft auf 0 ändern, damit das Schiff nicht herunterfällt. Sie können auch die bevorzugte Steuerungsmethode (Pfeile oder WASD) wählen und die Option Orient to direction aktivieren, wenn es für Ihre Grafik sinnvoll ist, und dann die Orientierungsachse wählen. Klicken Sie nun oben im Editor auf Play, um das Spiel zu testen.

Sie werden wahrscheinlich feststellen, dass das Schiff viel driftet, was die Kontrolle erschwert. Stellen Sie die Reibung am Rigidbody2D ein und stellen Sie sie auf 10. Wenn Sie jetzt spielen, werden Sie sehen, dass die Drift weg ist, aber das Objekt ist auch langsamer, viel langsamer. Denn der Kraft, die sie bewegte, wird nun durch die Reibung entgegengewirkt.

Daher müssen wir auch den Speed-Parameter in der Move-Komponente anpassen. Bringen Sie es auf 8 und drücken Sie erneut Play. Du wirst sehen, dass das Schiff jetzt viel einfacher zu kontrollieren ist. Wir haben gerade unseren allerersten Gameplay-Tweak gemacht! Herzlichen Glückwunsch: Du bist Gamedesigner!

Hinweis:Spielmodus

Wenn Sie Komponentenwerte im Spielmodus bearbeiten, verlieren Sie Ihre Änderungen, sobald das Spiel beendet wird. Denken Sie daran, Änderungen nur vorzunehmen, wenn Sie sich nicht im Spielmodus befinden! Sie sollten Änderungen im Spielmodus nur vornehmen, wenn Sie temporäre Werte testen.

3 - Hinzufügen von Hindernissen und Kollisionen

Wir haben etwas Spielbares, aber es ist nicht wirklich ein Spiel. Fügen wir einige Hindernisse hinzu, die das Schiff durchlaufen muss, indem sie einen Asteroiden-Sprite aus dem Ordner /Images ziehen. Wie bisher wird Unity ein Spielobjekt für uns erstellen.

Wir müssen zwei Komponenten hinzufügen: Rigidbody2D und PolygonCollider2D. Der PolygonCollider2D wird es so machen, dass dieses Objekt in der Lage ist, andere Objekte zu kollidieren (berühren). Wir müssen diese Komponente auch dem Schiff hinzufügen.

Schiff und Asteroid zeigen eine grüne Grenze: die Kollisionsform.

Sobald Collider hinzugefügt wurden, drücken Sie auf Play. Sie werden feststellen, dass das Schiff nun den Asteroiden herumschieben kann. Vergiss nicht, die Schwerkraft des Asteroiden auf 0 zu verändern, sonst fällt er herunter! Außerdem kannst du den Parameter des Asteroiden anpassen: Reibung, Winkelreibung und Masse, damit sie sich so verhalten, wie Sie es wünschen. Setzen wir die Masse auf 10, damit sie schwerer wird und er nicht wegfliegt, wenn er das Schiff berührt. Ein so großer Asteroid muss sehr schwer sein!

Lasst uns diesen Asteroiden jetzt zu einer Bedrohung machen. Sie müssen dem Asteroiden ein Skript mit dem Namen ModifyHealthAttribute hinzufügen, das Sie unter /Scripts/Attributes finden.

Der ModifyHealthAttribute Inspektor

Dann brauchen wir das Schiff, um diesen Schaden erkennen zu können. Um das zu tun, gibt es ein weiteres Skript namens HealthSystemAttribute ( und zwar nach wie vor unter /Scripts/Attributes), das wir dem Raumschiff hinzufügen müssen.

Der HealthSystemAttribute Inspektor

Dies gibt dem Spieler nicht nur Gesundheit, sondern ermöglicht es uns auch, den Anfangswert festzulegen. Schließlich machen Sie den Asteroiden zu einem Prefab und duplizieren Sie es (Abkürzung: Strg+D für Windows, Command+D auf Mac), um ein kleines Asteroidenfeld um das Schiff zu erstellen.

Hinweis:Voreinstellung (Prefabs)

Bevor Sie den Asteroiden duplizieren, möchten Sie ihn wahrscheinlich in einen Prefab verwandeln, so dass Sie zu einem späteren Zeitpunkt alle Asteroiden auf einmal bearbeiten können.

Wenn Sie nicht wissen, was eine Prefab ist und mehr darüber erfahren möchten, können Sie diese im Handbuch nachlesen oder sich ein kurzes Video-Tutorial ansehen.

Prefabs sind ein grundlegendes Konzept in Unity, wenn man ein großes Spiel macht oder in einem Team arbeitet, aber im Moment kann man sie auch beiseite lassen. Du kannst dich auf dein erstes Spiel konzentrieren und später auf sie zurückkommen, wenn du Zeit hast.

4 - Hinzufügen der Benutzeroberfläche

Wir haben jedoch kein Feedback, wenn der Spieler getroffen wird. Fügen wir also eine Benutzeroberfläche hinzu, um den Zustand des Spielers zu visualisieren. Ziehen Sie das UserInterface Prefab aus dem Ordner /Prefabs in die Szene. Sie werden automatisch eine Benutzeroberfläche sehen, die erscheint, wenn Sie sich die Spielansicht mit Punktestand und Gesundheit ansehen.

Wenn du das Spiel jetzt spielst, wirst du sehen, dass das Treffen auf einen Asteroiden einen Punkt der Gesundheit abzieht! Und wenn du zu oft triffst, Game Over!

Jetzt, da du ein volles Asteroidenfeld hast, ist es an der Zeit, erneut zu testen, ob du tatsächlich durch das Feld navigieren kannst, ohne so viele zu treffen. Das Spiel muss schwierig sein, aber nicht zu schwierig! Durch die Neupositionierung der Asteroiden und das Testen des Spiels arbeitest du nun grundsätzlich an der Spielbalance und machst effektives Leveldesign.

5 - Hinzufügen eines Zieles

Also, worum geht es in diesem Spiel? Nehmen wir an, wir wollen, dass das Schiff ein paar Sterne sammelt, ohne in die Asteroiden zu stürzen. Sobald alle Sterne gesammelt sind, wird das Spiel gewonnen. Aber wenn du zu oft kollidierst, ist das Spiel vorbei!

Fügen wir einen Stern aus dem Ordner /Images hinzu, indem wir ihn in die Szene ziehen. Fügen Sie ein Sammelskript aus dem Ordner /Scripts/Attribute hinzu. Dies macht den Stern zu einem sammelbaren Gegenstand, so dass der Spieler einen Punkt erhält.

Aber wie erkennen wir, ob der Stern gesammelt wurde? Wir werden wieder eine Kollisionen verwenden. Füge einen PolygonCollider2D hinzu, aber diesmal wollen wir es zu einem Trigger machen, also aktiviere die Is Trigger Eigenschaft.

Hinweis:Auslöser (Triggers)

Auslöser sind eine spezielle Art von Collider. Sie machen ein Objekt immateriell, so dass es aussieht, als ob es andere Objekte nicht berühren kann. Unity erkennt jedoch, wenn sich die beiden Objekte berühren, so dass Sie daraus Aktionen ausführen können.

Zum Beispiel sind Auslöser sehr nützlich, um zu erkennen, ob ein Spieler das Ende des Levels erreicht hat. Platzieren Sie einen kurz vor dem Ausgang oder Endpunkt, und wenn der Spieler ihn berührt, zeigen Sie eine You Win-Meldung an. Der Spieler sieht nichts, aber der Auslöser liefert Ihnen (dem Entwickler) die Logik, um die Gewinnbedingung zu erkennen.

6 - Gewinnbedingung

Wenn Sie das Spiel jetzt spielen, werden Sie feststellen, dass der Stern vom Schiff eingesammelt wird. An dieser Stelle möchten Sie den Stern vielleicht auch zu einem Prefab machen (siehe Hinweis zu Prefabs oben) und sie dann so oft duplizieren, wie Sie es für notwendig halten. Nehmen wir an, wir haben 5 in der Szene. Jetzt wollen wir sie so verteilen, dass einige leicht während die anderen schwieriger zu bekommen sind. Auf diese Weise schaffen wir auch eine ungeheure Schwierigkeit für unser kleines Spiel.

Schließlich müssen Sie das UI-Spielobjekt auswählen und im UI-Skript sicherstellen, dass die Art des Spiels Score ist und dass die erforderliche Punktzahl 5 ist; wenn dies nicht mit der Anzahl der Sterne im Spiel übereinstimmt, dann erstellen Sie ein Spiel, das nicht zu gewinnen ist!

Drücken Sie erneut auf Play und überprüfen Sie, ob Sie das Spiel gewinnen können. Wenn du alle 5 Sterne bekommst, solltest du eine Meldung mit der Aufschrift "Spieler 1 gewinnt" sehen.

Herzlichen Glückwunsch: Du hast gerade dein erstes Spiel gemacht. Gute Arbeit! Passen Sie es so lange an, bis Sie mit den Bedienelementen, der Schwierigkeit und dem Level-Layout zufrieden sind.

Nächste Schritte

Nun, da du einen ersten Überblick über Unity und den Unity Playground hast, kannst du damit weitermachen und komplexere Spiele entwickeln. Als ersten Schritt solltest du wahrscheinlich einen Blick auf die Allgemeinen Konzepte des Spielplatzes werfen, um ihn besser zu verstehen.

Denke daran: Der Spielplatz soll flexibel sein, also finde deine eigenen Spielgenres oder kopiere ein bestehendes Spiel, alles ist in Ordnung!

Hinweis: Wenn Sie lernen, wie man Spiele macht, ist das Kopieren des Gameplays alter Spiele aus den 80er Jahren (wie Asteroiden, Arkanoid, Space Invaders, Frogger und so viele andere...) normalerweise eine gute Idee, weil sie einfach waren. Wenn Sie sich dann verbessern, können Sie immer mehr Details hinzufügen und die Interaktion verfeinern.

Wenn Sie Inspiration benötigen, öffnen Sie den Ordner Beispiele und starten Sie eines der Spiele. Schauen Sie sich die Spielobjekte an und sehen Sie, wie wir diese gemacht haben, und versuchen Sie dann, etwas Ähnliches zu erstellen.

Spielplatz

Erste Schritte

Referenzhandbuch