Erstellen Sie einen Spieler und seine Feinde

Im vorigen Kapitel haben wir einen Hintergrund und ein paar Requisiten zu unserer Szene hinzugefügt. Es ist Zeit, ein paar nützlichen Spielelemente, wie die Spieler hinzufügen!

Spieler steuerbare Einheit anlegen muss einige Elemente. ein Sprit, eine Art und Weise, sie zu kontrollieren und eine Möglichkeit, es mit der Welt interagieren zu lassen.







Wir werden diesen Prozess Schritt für Schritt erkunden.

Beginnen wir mit dem Sprite beginnen.

Fügen Sie ein Sprite

Hier ist das Bild, das wir verwenden:

Erstellen Sie einen Spieler und seine Feinde

(Rechtsklick auf das Bild speichern)

Kopieren Sie das Bild Spieler auf den „Textures“ -Ordner.

Erstellen Sie ein neues Sprite. Nennen Sie es „Player“.

Wählen Sie das Sprite im „Sprite“ -Eigenschaft des „Sprite Renderer“ Komponente angezeigt werden soll.

Wenn Sie Probleme haben, beziehen sich auf den vorangegangenen Teil. Wir haben genau die gleiche Prozedur für den Hintergrund und Requisiten.

Wählen Sie den „Player“ Sprite-Schicht.

Platzieren Sie den Player in dem „Vordergrund“ Objekt.

Ändern Sie den Maßstab. (0,2, 0,2, 1) sollte in Ordnung sein.

Ein Wort über Komponenten

Standardmäßig sucht ein leeres Spielobjekt wie:

Erstellen Sie einen Spieler und seine Feinde

Diese Aufgabe hat nur eine Komponente: eine „Transform“. Diese Komponente ist erforderlich und kann nicht von einem Objekt deaktiviert oder entfernt werden.

Sie können beliebig viele Komponenten hinzufügen, wie Sie auf ein Objekt werden soll. Ein Skript wird als Komponente hinzugefügt, zum Beispiel. Die meisten Komponenten können während der Lebensdauer des Objekts aktiviert oder deaktiviert werden.

Erstellen Sie einen Spieler und seine Feinde

(Sie können es zu Behinderungen auf das Kontrollkästchen klicken. Sie können mit der rechten Maustaste auf eine Komponente, um sie zurückzusetzen, entfernen Sie es, etc.)

Hinweis. Komponenten können mit anderen Komponenten interagieren. Wenn ein Objekt eine Komponente aufweist, die eine andere Komponente eines Objekts erfordert, mit zu arbeiten, können Sie ziehen Sie einfach das gesamte Objekt innerhalb dieser Komponente und es wird die richtige in dem Objekt finden.

Ein „Sprite Renderer“ ist eine Komponente, die ein Sprite Textur angezeigt werden kann.

Jetzt, da wir über das Konzept der Komponente gelernt haben, fügen wir ein für den Spieler!

Fügen Sie eine Box Collider

Klicken Sie auf die „Komponente hinzufügen“ -Button des Spielerobjekts. Wählen Sie eine „Box Collider 2D“.

Dies wird den Spieler hitbox darstellen.

Sie können die Collider im Editor „Szene“ Ansicht sehen und ihre Größe in dem „Inspektoren“ zwicken mit der „Size“ Eigenschaft.

Spitze. Es gibt einen anderen Weg, um ein Box-Collider zu bearbeiten. Wählen Sie ein Spiel-Objekt mit einem Feld Collider und aktivieren Sie die „Edit Collider“ Toggle im Bauteil. Sie können beobachten, dass der Box-Collider (das grüne Rechteck) nun auf vier kleine Griffe zeigen. Ziehen Sie eine von ihnen die Form der Box zu ändern.

Seien Sie vorsichtig, stellt das blaue Rechteck die Transformation Komponente des Spiels Objekt, nicht die Collider.

Wir werden die Größe des Collider (10, 10).

Es ist viel zu groß für eine echte shmup aber es ist immer noch kleiner als die Sprite:

Erstellen Sie einen Spieler und seine Feinde

Zur Zeit wird es genug sein.

Spitze. wenn Sie planen, eine shmup zu machen. viel Zeit Tweaking Ihre Hitboxen verbringen. In der Regel sollte es perfekt ein kleines Element im Inneren des Players Sprite passen. Was ist mit dem Schiff Fenster hier? Sie könnten auch die Collider Form ändern - mit einem „Circle Collider 2D“ zum Beispiel. Es ändert nichts an dem Verhalten dank Unity, aber es wird leicht das Gameplay verbessern.

Speichern Sie die Spieler Spielobjekt zu einem Fertig. Sie haben nun eine grundlegende Spieler Einheit!

Erstellen Sie einen Spieler und seine Feinde

Polygon Collider 2D

Wenn Sie ein Super-präzise und benutzerdefinierte geformte hitbox wollen, bietet Unity ein „Polygon Collider 2D“ Komponente. Es ist weniger effizient, aber können Sie die Form genau einstellen, wie Sie wollen.

Die Starrkörper Magie

Es gibt eine letzte Komponente auf unseren Spielern hinzuzufügen: ein „Starrkörper 2D“.

Dies wird auf die Physik-Engine sagen, wie das Spiel-Objekt zu behandeln. Darüber hinaus wird es auch Kollisionsereignisse angehoben werden in Skripten ermöglichen.

  1. Wählen Sie ein Spieler-Spiel-Objekt in der „Hierarchie“.
  2. Fügen Sie eine „Starrkörper 2D“ Komponente.

Jetzt treffen, spielen und zu beachten:

Das Schiff sinkt!

Sag hallo zu unserer geliebten Schwerkraft. )

Als neue Szenen mit einem Standardschwerkraft kommen und rigidbodies fügen Sie eine Masse auf ein Objekt, wird das Schiff nun auf den Boden angezogen.

Die Standard-Schwerkraft der Einheit ist 9,81. das heißt, die Schwerkraft der Erde.

Gravity kann in irgendeiner Art von Spielen verwendet werden, aber wir wollen nicht, es hier zu haben, zu behandeln. Glücklicherweise ist es einfach die Schwerkraft auf einem Starrkörper zu deaktivieren. Gerade gesetzt „Gravity Scale“ auf 0. Das ist es, das Schiff wieder fliegen.







Die kompletten Einstellungen:

Erstellen Sie einen Spieler und seine Feinde

Transportieren des Players

Zeit für einige scripting! Bisher haben wir nichts codieren. Das ist die Macht der (Liebe) Einheit.

einen neu C # Skript in Ihrem Ordner „Scripts“ im Innern der Einheit, erstellen. Nennen Sie es „PlayerScript“.

Öffnen Sie Ihren bevorzugten Editor oder verwenden Sie das „Sync“ Untermenü (Klicken Sie auf „Assets“ in der Menüleiste, dann auf „Sync MonoDevelop Project“), um das Skript zu bearbeiten.

„Sync MonoDevelop Project“. Dieses Untermenü ist ein bisschen komisch. Zuerst kommt der Name nicht ändern, auch wenn Sie einen anderen Editor eingerichtet haben.

Wenn Sie einfach das Skript öffnen stattdessen wird der Compiler Ihres IDE wahrscheinlich einige Fehler fangen, weil es nicht Unity wird es wissen.

Es spielt keine Rolle, weil man nie mit ihm direkt kompilieren, aber es ist schön, die automatische Vervollständigung auf den Unity-Objekten und einen ersten Durchgang auf Fehler zu haben.

Wenn Sie von XNA kommen, werden Sie nicht verloren.

Sie können einige Methoden (so genannte „Message“, wie wir nicht C # Vererbungssystem verwenden) definieren, dass die Einheit erkennen und ausführen, wenn nötig.

Standard-Skripte kommt mit den Start- und Update-Methoden. Hier ist eine kurze Liste der am häufigsten verwendeten „Message“ Funktionen:

  • Awake () wird einmal aufgerufen, wenn das Objekt erstellt wird. Sehen Sie es als Ersatz eines klassischen Konstruktor.
  • Start () wird nach Awake () ausgeführt wird. Der Unterschied besteht darin, dass die Start () Methode nicht, wenn das Skript aufgerufen wird, ist nicht aktiviert (die Checkbox auf einer Komponente in dem „Inspektoren“ erinnern).
  • Update () wird für jeden Rahmen im Hauptspiel Schleife ausgeführt.
  • FixedUpdate () bei jedem festen Framerate Rahmen bezeichnet. Sie sollten diese Methode über Update () verwenden, wenn mit der Physik ( „Starrkörper“ und Kräften) zu tun.
  • Destroy () wird aufgerufen, wenn das Objekt zerstört wird. Es ist Ihre letzte Chance, zu reinigen oder einen Code auszuführen.

Sie haben auch einige Funktionen für die Kollisionen:

Fiou ... Diese Erklärung war ein bisschen langweilig, aber unvermeidlich. Das tut mir leid .

Anmerkung zum 2D-Suffix. Sie sollten jetzt, dass fast alles beobachtet haben wir darüber gesprochen, wurde mit „2D“ nachgestellt. Eine „Box Collider 2D“, ein „Starrkörper 2D“, die „OnCollisionEnter2D“ oder „OnTriggerEnter2D“ Methoden usw. Diese neuen Komponenten oder Verfahren mit Unity 4.3 erschienen.

Durch die Verwendung von ihnen adoptieren Sie den neuen Physik-Engine integriert in Unity 4.3 für 2D-Spiele (basierend auf Box2D) statt dem für 3D-Spiele (PhysX). Die beiden Motoren sind die ähnliche Konzepte und Objekte, aber sie funktionieren nicht genau das gleiche. Wenn Sie mit einem arbeiten beginnen (favorisieren Box2D für 2D-Spiele), dabei zu bleiben. Aus diesem Grund verwenden wir alle Objekte oder Methoden mit einem „2D“ Suffix.

Wir werden ausführlich auf einige von ihnen zurück, wenn wir sie verwenden werden.

mit den Pfeiltasten bewegt sich das Schiff: Für unsere Spieler Skript, werden wir einige einfache Steuerelemente hinzufügen.

Anmerkung bezüglich C # Konventionen. Blick auf die Geschwindigkeit Mitglied Sichtbarkeit: es ist öffentlich. In C # sollte eine Membervariable privat sein, um privat die interne Darstellung der Klasse zu halten.

Aber aussetzt es als eine öffentliche Variable ermöglicht es in Unity durch die „Inspector“ pane zu ändern, auch während des Spiels Ausführung. Dies ist ein starkes Merkmal der Einheit, so dass Sie das Gameplay Tweaks ohne Codierung.

Denken Sie daran, dass wir Scripting tun hier, nicht klassische C # -Programmierung. Dies bedeutet, einige Regeln und Konventionen zu brechen.

Erläuterungen

  1. Wir definieren zunächst eine öffentliche Variable, die in der „Inspektor“ Ansicht der Einheit angezeigt. Dies ist die Geschwindigkeit auf das Schiff aufgebracht.
  2. Die Felder, die wir brauchen.
  3. Wir verwenden die Standard-Achse, die in „Edit“ neu definiert werden kann -> „Projekteinstellungen“ -> „Input“. Dies wird wieder einen Wert zwischen [-1, 1]. 0 ist der Ruhezustand, 1 das Recht, -1 die linke Seite.
  4. Wir multiplizieren die Richtung durch die Geschwindigkeit.
  5. Wir müssen die Starrkörper Komponente zugreifen zu können, aber wir können vermeiden, dass es durch Speichern einer Referenz für jeden Rahmen zu tun.
  6. Wir verändern die Geschwindigkeit Starrkörper. Dies wird die Physik-Engine sagen, um das Spiel Objekt zu bewegen. Wir tun das in FixedUpdate (), wie es empfohlen wird, alles zu tun, die dort Physik bezogene ist.

Nun schließen Sie das Skript, um das Spiel-Objekt.

Spitze. Sie können durch Ziehen das Skript aus dem „Projekt“ Sicht auf das Spielobjekt in der „Hierarchie“ ein Skript zu einem Spiel-Objekt anhängen. Sie können auch auf „Komponente hinzufügen“ und es manuell finden.

Drücken Sie die Taste in oben im Editor auf „Play“. Das Schiff bewegt und das Spiel läuft! Herzlichen Glückwunsch, Sie haben gerade das Äquivalent eines „Hallo, Welt!“ Für ein Spiel gemacht :)

Versuchen Sie, die Geschwindigkeit zu optimieren: Klicken Sie auf den Spieler, ändern Sie die Geschwindigkeitswerte in der „Inspektor“ und Blick auf die Folgen.

Achtung. Änderungen, wenn das Spiel ausgeführt wird (oder gespielt) gehen verloren, wenn Sie es zu stoppen! Es ist ein großes Werkzeug für das Gameplay zwicken, aber denken Sie daran, was Sie tun, wenn Sie die Änderungen beibehalten möchten.

Allerdings ist dieser Effekt auch praktisch: Sie Ihr Spiel vollständig während der Ausführung etwas Neues, ohne Angst zu haben, Ihr reales Projekt zu brechen testen zerstören kann.

Dies war das erste Lebenszeichen in unserem Spiel! Lassen Sie uns mehr hinzuzufügen!

Ein shmup ist nichts ohne Tonnen Feinde zu sprengen.

Erstellen Sie einen Spieler und seine Feinde

(Rechtsklick auf das Bild speichern)

Zeit, ein neues Sprite zu erstellen! Nochmals:

  1. Kopieren Sie das Bild in die „Sprites“ -Ordner.
  2. Erstellen Sie ein neues Sprite unter Verwendung dieses Bildes.
  3. Stellen Sie die Sprite-Ebene auf „Feinde“
  4. Ändern, um die „Scale“ Eigenschaft der Transformation bis (0,3, 0,3, 1).
  5. Fügen Sie eine „Box Collider 2D“ mit einer Größe von (4, 4).
  6. Fügen Sie ein „Starrkörper 2D“ mit einem „Gravity Scale“ von 0 und „Fixed Angles“ abgehakt.

Speichern Sie die Fertig ... und das ist es!

Erstellen Sie einen Spieler und seine Feinde

Wir werden Skript ein einfaches Verhalten: das Poulpi wird nur in eine Richtung bewegen.

Erstellen Sie ein neues Skript „MoveScript“.

Wir könnten es „EnemyScript“ nennen, aber wir planen, es in einem anderen Kontext später wieder zu verwenden.

Hinweis. die Modularität von Unity komponentenbasierten System bereitgestellt werden, bietet eine gute Möglichkeit, Skripte mit unterschiedlichen Funktionen zu trennen. Natürlich können Sie immer noch mit sehr vielen Parametern einen riesigen Skript tut alles haben. Sie haben die Wahl, aber wir empfehlen, gegen das zu tun.

Wir werden einige Teile kopieren, was wir bereits in der „PlayerScript“ für Bewegung geschrieben. Wir werden einen anderen Designer (ein öffentliches Mitglied können Sie in der „Inspektor“ ändern können) in Variable für die Richtung:

Bringen Sie das Skript an den Poulpi. Hit „Play“: Es sollte wie unten bewegen.

Wenn Sie den Player vor dem Feind zu bewegen, werden die beiden Sprites kollidieren. Sie blockieren nur sie, da wir nicht das Kollisionsverhalten noch definiert haben.

Sie haben gelernt, wie man einen Spieler Entität hinzuzufügen, von der Tastatur gesteuert. Dann haben wir einen Grund Feind mit einem rudimentären AI.

Jetzt wollen wir, dass die sich bewegende Sache zerstören! Und dafür brauchen wir Munition!







In Verbindung stehende Artikel