
Hallo habrozhiteli! Die zweite Ausgabe von Unity in Action wurde komplett überarbeitet, um Ihnen neue Ansätze und Ideen vorzustellen, mit denen Sie Unity für die Spieleentwicklung optimal nutzen können. Mehr Aufmerksamkeit wird dem Design zweidimensionaler Spiele gewidmet, deren grundlegende Konzepte der Leser in die Praxis umsetzen und einen komplexen zweidimensionalen Plattformer aufbauen kann. Dieses Buch kann sicher als Einführung in Unity für professionelle Programmierer bezeichnet werden. Joseph Hawking bietet Menschen mit Entwicklungserfahrung alle notwendigen Informationen, damit sie schnell ein neues Tool erlernen und neue Spiele erstellen können. Und es ist am besten, aus bestimmten Projekten und praktischen Aufgaben zu lernen.
Unity wird häufig als eine Reihe von Komponenten dargestellt, für die keine Programmierung erforderlich ist, was grundsätzlich falsch ist. Um ein erfolgreiches Spiel zu erstellen, ist viel erforderlich: die hervorragende Arbeit des Künstlers, die Programmierkenntnisse, eine interessante Geschichte, das faszinierende Gameplay, die freundliche und koordinierte Arbeit des Entwicklungsteams. Und wir dürfen die einwandfreie Visualisierung und die qualitativ hochwertige Arbeit auf allen Plattformen nicht vergessen - von Spielekonsolen bis hin zu Mobiltelefonen. Unity kombiniert eine leistungsstarke Engine, professionelle Programmiermöglichkeiten und kreative Designer, sodass Sie die unglaublichsten und ehrgeizigsten Projekte realisieren können.
Meistere Unity und erstelle schneller deine eigenen Spiele!
Buchstruktur
In Kapitel 1 wird Unity vorgestellt, eine plattformübergreifende Spieleentwicklungsumgebung. Sie lernen das grundlegende Komponentensystem kennen, das Unity zugrunde liegt, und lernen, wie Sie grundlegende Skripte schreiben und ausführen.
In Kapitel 2 werden wir ein Programm schreiben, das die Bewegung im dreidimensionalen Raum demonstriert und gleichzeitig Themen wie Maus- und Tastatureingaben untersucht. Die Bestimmung der Position von Objekten im dreidimensionalen Raum und die Funktionsweise ihrer Drehung werden ausführlich erläutert.
In Kapitel 3 werden wir das Demo-Programm in einen Ego-Shooter verwandeln, indem wir die Strahlemissionsmethode und die Grundlagen der künstlichen Intelligenz demonstrieren. In allen Spielversionen ist eine Strahlemission erforderlich (wir erstellen eine Linie in der Szene und sehen, mit welcher sie sich schneidet).
Kapitel 4 befasst sich mit dem Importieren und Erstellen von Spielressourcen. Dies ist das einzige Kapitel im Buch, in dem der Code keine zentrale Rolle spielt, da für jedes Projekt (grundlegende) Modelle und Texturen erforderlich sind.
In Kapitel 5 erfahren Sie, wie Sie in Unity zweidimensionale Spiele erstellen. Obwohl dieses Tool ursprünglich nur zum Erstellen dreidimensionaler Grafiken gedacht war, unterstützt es jetzt perfekt zweidimensionale Grafiken.
In Kapitel 6 wird die Erläuterung der Prinzipien zum Erstellen zweidimensionaler Spiele am Beispiel eines Plattformers fortgesetzt. Insbesondere implementieren wir Steuerelemente, die die physische Umgebung und Animation für den Charakter simulieren.
In Kapitel 7 werden die neuesten GUI-Funktionen in Unity vorgestellt. Die Benutzeroberfläche ist für alle Spiele erforderlich, und die neuesten Versionen von Unity verfügen über ein verbessertes System zur Erstellung von Benutzeroberflächen.
In Kapitel 8 werden wir ein weiteres Programm erstellen, das die Bewegung im dreidimensionalen Raum demonstriert, diesmal jedoch aus der Sicht eines externen Beobachters. Durch die Implementierung von Steuerelementen von Drittanbietern erhalten Sie eine Vorstellung von den wichtigsten mathematischen Operationen im dreidimensionalen Raum. Außerdem lernen Sie, wie Sie mit animierten Zeichen arbeiten.
Kapitel 9 zeigt, wie interaktive Geräte und Elemente im Spiel implementiert werden. Der Spieler hat verschiedene Möglichkeiten, diese Geräte zu verwenden, z. B. durch direktes Berühren, Berühren der Auslöser im Spiel oder durch Drücken der Controller-Taste.
Kapitel 10 lehrt die Interaktion mit dem World Wide Web. Sie lernen, wie Sie Daten mithilfe von Standardtechnologien wie HTTP-Anforderungen zum Empfangen von XML-Daten von einem Server senden und empfangen.
In Kapitel 11 erfahren Sie, wie Sie Spielen Sound hinzufügen. In Unity werden sowohl kurze Soundeffekte als auch lange musikalische Tonträger bemerkenswert unterstützt. Beide Soundoptionen sind für fast alle Videospiele von entscheidender Bedeutung.
In Kapitel 12 werden wir Fragmente aus verschiedenen Kapiteln zusammenführen, um am Ende ein Spiel zu erhalten. Außerdem lernen Sie, wie Sie mit der Maus manipulierte Steuerelemente programmieren und das Spiel speichern.
Über den Autor
Joseph Hawking lebt in Chicago und entwickelt Software für interaktive Umgebungen. Er arbeitet für InContext Solutions. Die erste Ausgabe dieses Buches wurde während seiner Zeit bei Synapse Games geschrieben. Er unterrichtete auch Spieleentwicklung an der University of Illinois, am Chicago Institute of the Arts und am Columbia College. Seine Website ist
www.newarteest.com .
Auszug. 6.4.2. Nach oben drücken
Lassen Sie uns dem Charakter das Springen beibringen. Wenn Sie dazu die Sprungtaste drücken, muss der Charakter dazu nach oben drücken. Die horizontale Bewegungsgeschwindigkeit wird direkt im Code bearbeitet, und bei der vertikalen Bewegung werden wir anders handeln, um die Wirkung der Schwerkraft nicht zu beeinträchtigen. Tatsache ist, dass mehrere Kräfte gleichzeitig auf ein Objekt einwirken können, also fügen wir ihm eine Aufwärtskraft hinzu. Fügen Sie diesen Code in das Bewegungsskript ein.
Beachten Sie den Befehl AddForce (). In einem gepulsten Modus wird der Rigidbody-Komponente eine ansteigende Kraft hinzugefügt. Impuls ist ein plötzlicher Stoß, im Gegensatz zu einer kontinuierlich wirkenden Kraft. Im Code tritt ein solcher Ruck nach dem Drücken der Leertaste auf. Gleichzeitig wirkt die Schwerkraft weiterhin auf den Charakter, wodurch er nach dem Sprung einen schönen Bogen beschreibt.
Aber vielleicht haben Sie bereits auf einen Nachteil geachtet, an dessen Beseitigung wir jetzt arbeiten.
6.4.3. Oberflächenerkennung
Die Sprungsteuerung hat einen kleinen Nachteil: die Fähigkeit, im Flug zu springen (wenn der Charakter bereits gesprungen ist oder wenn er fällt). Das Drücken der Leertaste selbst in diesem Fall gibt einen Impuls ab, obwohl dies nicht möglich ist. Die Sprungsteuerung sollte nur für einen Charakter funktionieren, der auf der Plattform steht. Sie müssen also lernen, wie Sie feststellen können, ob sich ein Charakter auf der Oberfläche befindet.
Dieser Code raubt dem Charakter die Fähigkeit, in die Luft zu springen. Es prüft, ob sich unter dem Zeichen ein Collider befindet, und berücksichtigt das Ergebnis der Prüfung der Bedingung für den Sprung. Zunächst werden die Grenzen des Kollisionsprimitivs unseres Charakters bestimmt, und dann werden überlappende Kollider in dem Bereich mit der gleichen Breite direkt unter den Beinen des Charakters gesucht. Das Ergebnis der Prüfung wird in der geerdeten Variablen gespeichert und in der bedingten Anweisung verwendet.
6.5. Zusätzliche Plattformfunktionen
Also haben wir die Nuancen der Umsetzung der Bewegungen, des Gehens und Springens des Charakters herausgefunden. Wir werden die Demo unseres Spiels mit neuen Umgebungsfunktionen ergänzen.
ENTWURF VON STUFEN MIT TILEMAP_ ______
Im Rahmen des Projekts wurden der Boden und die Plattformen aus leeren weißen Rechtecken erstellt. Die endgültige Version des Spiels erfordert aufwendigere Grafiken, aber es ist unwahrscheinlich, dass der Computer ein Bild von der Größe eines ganzen Levels verarbeiten kann. Meistens wird dieses Problem mit dem Tilemap-Tool gelöst. Sie können Bilder nach dem Prinzip eines Rasters entwerfen. So sieht es aus.
Bitte beachten Sie: Die Karte besteht ausschließlich aus kleinen Zellen. Auf diese Weise können Sie den gesamten Bildschirm mit einem Bild abdecken, ohne auf zu große Bilder zurückgreifen zu müssen.
Das offizielle Tilemap-Tool wurde zu den neuesten Versionen der Unity-App hinzugefügt. Sie können auch externe Bibliotheken verwenden, z. B. Tiled2Unity, ein System, das Karten importiert, die im beliebten (und kostenlosen) Tiled-Editor erstellt wurden.
6.5.1. Geneigte und einseitige Plattformen
Jetzt gibt es in unserem Spiel nur einen normalen Boden und einen Block, durch den Sie springen können. Es gibt aber auch andere Plattformoptionen. Wir werden sie verwenden, um die Szene zu diversifizieren. Beginnen wir mit dem geneigten Abschnitt. Erstellen Sie eine Kopie des Floor-Objekts, geben Sie ihm den Namen Slope, geben Sie die Werte 0, 0, -25 in die Rotationstransformationsfelder ein und verschieben Sie sie nach links, wobei Sie den Koordinaten der Transformationstransformation die Werte –3,47, –1,27, 0 zuweisen.
Starten Sie die Szene. Während des Bewegungsprozesses gleitet der Charakter korrekt auf und ab. Aufgrund der Schwerkraft beginnt es jedoch nach unten zu rutschen und befindet sich in einem statischen Zustand. Um dieses Problem zu lösen, sollten Sie die Simulation der Schwerkraft deaktivieren, wenn sich das Zeichen (a) auf der Plattform befindet und (b) in Ruhe ist. Glücklicherweise haben wir ihm bereits beigebracht, Oberflächen zu erkennen, und können dies in einem neuen Code verwenden. Sie müssen nur eine Zeile hinzufügen.
Nach dem Bearbeiten des Bewegungscodes begann sich das Zeichen auf geneigten Flächen korrekt zu verhalten. Fügen Sie nun die sogenannte Einwegplattform hinzu. Ein Charakter kann nicht nur darauf stehen, sondern auch durchspringen. Wenn Sie versuchen, durch eine normale Plattform zu springen, wird der Charakter seinen Kopf darüber schlagen.
Einseitige Plattformen sind häufig in Spielen zu finden, daher kann Unity sie implementieren. Wenn Sie sich erinnern, haben wir früher beim Hinzufügen der Platform Effector-Komponente das Kontrollkästchen One Way verwenden deaktiviert. Und jetzt brauchen wir es! Erstellen Sie erneut eine Kopie des Floor-Objekts, geben Sie ihm den Namen Platform, geben Sie die Werte 10, 1, 1 in die Felder für die Skalierung ein und platzieren Sie das resultierende Objekt über dem Boden. Geben Sie dabei die Koordinaten -1,68, 0,11, 0 an. Aktivieren Sie das Kontrollkästchen One Way verwenden Platform Effector 2D.
Der Charakter kann beim Hochspringen durch die Plattform fliegen, verhindert jedoch eine Abwärtsbewegung. Es muss nur ein Nachteil behoben werden. Es ist in Abb. 2 dargestellt. 6.11. In Unity kann ein Plattform-Sprite über dem Zeichen angezeigt werden (um die Anzeige zu vereinfachen, setzen Sie die Variable jumpForce auf 7. Sie können die Z-Koordinate des Zeichens wie im vorherigen Kapitel bearbeiten, diesmal jedoch anders. Die für das Rendern verantwortliche Komponente Sprites, es gibt eine Sortierreihenfolge, die bestimmt, welches Sprite oben angezeigt wird. Wählen Sie das Player-Objekt aus und setzen Sie den Parameter Reihenfolge in Ebene im Abschnitt Sprite-Renderer auf 1.
Jetzt in der Szene gibt es ein geneigtes Fragment des Bodens und eine unidirektionale Plattform. Es gibt jedoch noch eine andere ungewöhnliche Option, die etwas schwieriger implementiert ist als die Plattformen, die Sie bereits kennen. Mal sehen, wie das gemacht wird.
6.5.2. Plattformen bewegen
Die dritte Version des ungewöhnlichen Geschlechts, die in Plattformspielen üblich ist, ist das Bewegen von Plattformen. Um eine solche Plattform zu unserem Spiel hinzuzufügen, müssen Sie erstens ein neues Skript schreiben, das seine Bewegungen steuert, und zweitens das Skript für die Bewegung des Charakters bearbeiten. Im neuen Szenario bewegt sich die Plattform zwischen zwei Punkten: Start und Ende. Erstellen Sie ein C # -Skript mit dem Namen MovingPlatform und fügen Sie den folgenden Code hinzu.
ZEICHNUNG BENUTZERDEFINIERTER GIZMOS _________________________________________
Der größte Teil des Codes, der beim Lesen eines Buches geschrieben wird, programmiert, was in Spielen passiert. Mit Unity-Skripten können Sie jedoch den integrierten Editor beeinflussen. Viele wissen nicht, dass Sie Unity zusätzliche Menüs und Fenster hinzufügen können. Darüber hinaus werden mit ihrer Hilfe auf der Registerkarte Szene Hilfsobjekte erstellt, die als dimensionale Container (Gizmos) bezeichnet werden.
Sie sind bereits auf Großcontainer gestoßen. Erinnern Sie sich an die grünen Parallelepipeds, die Kollider bezeichnen? Sie sind in Unity integriert, aber niemand stört Sie daran, ein Skript für Ihren eigenen Gesamtcontainer zu schreiben. Erstellen Sie beispielsweise auf der Registerkarte Szene eine Linie, die der Plattformtrajektorie entspricht. Es ist in der Abbildung dargestellt.

Der Code, der eine solche Linie zeichnet, ist sehr einfach. Fügen Sie am oberen Rand des Codes, der sich auf die Unity-Schnittstelle auswirkt, die Zeile mit UnityEditor hinzu. (da sich die meisten Funktionen des Editors in diesem bestimmten Namespace befinden), dies ist jedoch in diesem Fall nicht erforderlich. Fügen Sie diese Methode einfach Ihrem MovingPlatform-Skript hinzu:
... void OnDrawGizmos() { Gizmos.color = Color.red; Gizmos.DrawLine(transform.position, finishPos); } ...
Zu diesem Code ist es wichtig, Folgendes zu verstehen. Zunächst wird die gesamte Aktion in der OnDrawGizmos () -Methode ausgeführt. Dies ist der Systemname, ebenso wie die Namen der Start- und Aktualisierungsmethoden. Zweitens fügen wir dieser Methode zwei Codezeilen hinzu: Die erste legt die Farbe der Linie fest und die zweite zwingt Unity, eine Linie von der Position der Plattform zum Zielpunkt zu zeichnen.
Ziehen Sie dieses Skript auf die Plattform. Spielen Sie die Szene ab und Sie werden sehen, dass sich die Plattform jetzt von einer Seite zur anderen bewegt! Es bleibt das Skript zu bearbeiten, das die Bewegungen des Charakters steuert, um es einer sich bewegenden Plattform zuzuordnen. Nehmen Sie die folgenden Änderungen vor.
Jetzt bewegt sich der Charakter, der auf die Plattform springt, mit. Tatsächlich lief alles darauf hinaus, den Charakter in ein Kind der Plattform zu verwandeln. Ich hoffe, Sie erinnern sich daran, dass sich das Kind nach der Bildung der hierarchischen Beziehung nach dem Elternteil bewegt. Die GetComponent () -Methode in Listing 6.7 prüft, ob die erkannte Oberfläche eine sich bewegende Plattform ist. Im Falle eines positiven Testergebnisses wird sie eine Vorfahrin in Bezug auf den Charakter; Andernfalls wird der Charakter von einem Vorfahren getrennt.
Es gibt jedoch ein Problem. Das Zeichen erbt von der Plattform und der Skalierungstransformation, was sich auf seine Größe auswirkt. Die Situation kann durch die inverse Transformation korrigiert werden (Reduzierung der Skalierung des Charakters, Ausgleich der durch die Plattform hervorgerufenen Vergrößerung der Größe).
Mathematisch gesehen sieht die Skalierungskompensation sehr einfach aus: Dem Spieler wird 1 geteilt durch die Plattformskala zugewiesen. Und wenn wenig später die Skala des Spielers mit der Skala der Plattform multipliziert wird, ist das Ergebnis 1. Der einzige schwierige Moment in diesem Fall besteht darin, das Zeichen zu berücksichtigen, das die Bewegungsrichtung bestimmt. Vielleicht erinnerst du dich daran, dass sich der Charakter abhängig davon von einer Seite zur anderen drehte.
Also haben wir dem Spiel eine bewegende Plattform hinzugefügt. Es ist noch ein letzter Schliff übrig, und die Demoversion wird vollständig fertig sein ...
»Weitere Informationen zum Buch finden Sie auf
der Website des Herausgebers»
Inhalt»
Auszug20% Rabatt auf Gutschein für Händler -
EinheitPS: 7% der Kosten des Buches fließen in die Übersetzung neuer Computerbücher. Die Liste der Bücher, die der Druckerei übergeben wurden, finden Sie
hier .