In diesem Tutorial zeige ich Ihnen, wie Sie die neuen in Unity enthaltenen 2D-Tools zum Erstellen eines 2D-Spiels nutzen können.
In diesem Lernprogramm erfahren Sie, wie Sie ein Unity 2D-Projekt erstellen und ein mobiles Spiel mit C # und Unity erstellen.
Das Ziel des Spiels ist es, einen Teleportstrahl auf die Kühe zu schießen, bevor sie die Sicherheit des Stalls erreichen können.
In diesem Projekt lernen Sie die folgenden Aspekte der Entwicklung von Unity kennen:
Öffnen Sie Unity und wählen Sie Neues Projekt von dem Datei Menü, um den neuen Projektdialog zu öffnen. Wählen Sie ein Verzeichnis für Ihr Projekt und legen Sie festRichten Sie die Standardeinstellungen für ein zu 2D.
Im nächsten Schritt wird die Unity-Benutzeroberfläche angezeigt. Richten Sie das Projekt für die mobile Entwicklung ein, indem Sie wählen Einstellungen erstellen von dem Datei Menü und wählen Sie Ihre Plattform Ihrer Wahl.
Unity kann für iOS, Android, BlackBerry und Windows Phone 8 erstellt werden. Dies ist besonders nützlich, wenn Sie ein mobiles Spiel für mehrere Plattformen erstellen möchten.
Da wir im Begriff sind, ein 2D-Spiel zu erstellen, müssen wir zunächst die gewünschte Plattform auswählen, indem wir die Größe des Bildmaterials auswählen, das wir im Spiel verwenden werden.
iOS:
Da Android eine offene Plattform ist, gibt es viele verschiedene Geräte, Bildschirmauflösungen und Pixeldichten. Nachfolgend sind einige der häufigsten aufgeführt.
Und für Witwen Phone und BlackBerry:
Obwohl wir uns in diesem Lernprogramm auf die iOS-Plattform konzentrieren, kann der Code für jede andere Plattform verwendet werden.
Je nach Zielgerät müssen Sie das Bildmaterial möglicherweise in die empfohlene Größe und Pixeldichte konvertieren. Sie können dies in Ihrem bevorzugten Bildeditor tun. Ich habe die verwendet Größe anpassen… Funktion unter der Werkzeuge Menü in OS X Vorschau Anwendung.
Stellen Sie sicher, dass Sie auf die Schaltfläche 2D in klicken Szene Panel. Sie können auch die Auflösung ändern, mit der die Szene im angezeigt wird Spiel Panel.
Die Benutzeroberfläche unseres Spiels wird einfach sein. Sie finden das Artwork für dieses Lernprogramm in den Quelldateien dieses Lernprogramms.
Sie können in Unity eine von drei Sprachen verwenden, C #, UnityScript, eine Sprache, die der Syntax von JavaScript ähnelt, und Boo. Jede Sprache hat ihre Vor- und Nachteile, aber es liegt an Ihnen, welche Sprache Sie bevorzugen. Ich bevorzuge die C # -Syntax, also die Sprache, die ich in diesem Tutorial verwenden werde.
Wenn Sie sich für eine andere Sprache entscheiden, schauen Sie sich unbedingt die Skriptreferenz von Unity an.
Unity hat sich einen Namen gemacht, weil es eine großartige Plattform für die Erstellung von 3D-Spielen für verschiedene Plattformen ist, beispielsweise Microsoft Xbox 360, Sony PS3, Nintendo Wii, das Internet und verschiedene mobile Plattformen.
Zwar war es immer möglich, Unity für die Entwicklung von 2D-Spielen zu verwenden, aber erst mit Unity 4.3 wurde native 2D-Unterstützung bereitgestellt. In den nächsten Schritten erfahren Sie, wie Sie mit Bildern als Sprites anstatt mit Texturen arbeiten.
Ich werde eine Reihe von Sounds verwenden, um das Spielerlebnis zu verbessern. Die in diesem Tutorial verwendeten Soundeffekte finden Sie unter Freesound.org.
Bevor wir mit der Codierung beginnen, müssen wir unsere Ressourcen zum Unity-Projekt hinzufügen. Es gibt mehrere Möglichkeiten, dies zu tun:
Nachdem Sie diesen Schritt abgeschlossen haben, sollten Sie die Assets in Ihrem Projekt sehen Vermögenswerte Ordner in der Projekt Panel.
Wir sind bereit, die Szene unseres Spiels zu erstellen, indem Sie Objekte in den Ordner ziehen Hierarchie oder Szene Panel.
Beginnen Sie mit dem Ziehen und Ablegen des Hintergrunds in die Hierarchie Panel. Es sollte dann in der erscheinen Szene Panel.
Weil der Szene Das Panel ist so eingestellt, dass eine 2D-Ansicht angezeigt wird Hauptkamera in dem Hierarchie zeigt eine Vorschau der Anzeige der Kamera. Sie können dies auch in der Spielansicht sehen. Um die gesamte Szene sichtbar zu machen, ändern Sie die Größe Wert des Hauptkamera zu 1.6 in dem Inspektor Panel.
Das Schiff ist auch ein statisches Element, mit dem der Spieler nicht interagieren kann. Positionieren Sie es in der Mitte der Szene.
Wählen Sie die Scheune aus Vermögenswerte und ziehen Sie es in die Szene. Positionieren Sie es wie in der Abbildung unten dargestellt.
Um sicherzustellen, dass der Stall benachrichtigt wird, wenn eine Kuh auf ihn trifft, betritt er den Stall, müssen wir eine Komponente hinzufügen, a Box Collider 2D um genau zu sein.
Wählen Sie die Scheune in der Szene aus, öffnen Sie die Inspektor und klicken Sie auf Komponente hinzufügen. Wählen Sie aus der Liste der Komponenten Box Collider 2D von dem Physik 2D Sektion. Stellen Sie sicher, dass Sie das überprüfen Ist Auslöser Box.
Wir möchten, dass die Kuh reagiert, wenn sie an die Stalltür stößt. Deshalb müssen wir den Collider etwas kleiner machen. Öffne das Inspektor und ändern Sie die Größe und Center Werte des Kollisors, um die Box näher an die Stalltür zu bewegen.
Es ist Zeit, Code zu schreiben. Wir müssen ein Skript hinzufügen, damit die Anwendung auf die Kollision reagieren kann, wenn eine Kuh den Stall betritt.
Wählen Sie die Scheune aus und klicken Sie auf Komponente hinzufügen Taste in der Inspektor Panel. Wählen Neues Skript und nennen Sie es OnCollision. Denken Sie daran, die Sprache in C # zu ändern..
Öffnen Sie die neu erstellte Datei und fügen Sie den folgenden Codeausschnitt hinzu.
mit UnityEngine; using System.Collections; public class OnCollision: MonoBehaviour void OnTriggerEnter2D (Collider2D andere) if (other.gameObject.name == "cow (Clone)") / * Spielt den Sound der Sicherungskuh ab * / audio.Play (); / * Zerstöre die Kuh * / Zerstöre (other.gameObject);
Das Snippet prüft auf eine Kollision zwischen dem Objekt, mit dem das Skript verknüpft ist, der Scheune und einem benannten Objekt Kuh (Klon)
, das wird ein Beispiel für die Kuh sein Prefab dass wir später schaffen werden. Bei einer Kollision wird ein Ton abgespielt und das Kuhobjekt zerstört.
Um einen Ton abzuspielen, wenn eine Kuh den Stall trifft, müssen wir den Ton zuerst am Stall befestigen. Wählen Sie es aus der Hierarchie oder Szene Ansicht, klicken Sie auf die Komponente hinzufügen Taste in der Inspektor und wählen Sie aus Audio quelle von dem Audio Sektion.
Deaktivieren Sie das Kontrollkästchen Auf Awake spielen und klicken Sie auf den kleinen Punkt rechts unter dem Zahnradsymbol, um den Stallklang auszuwählen.
Sie können die Größe der Symbole in der Unity-Benutzeroberfläche (Gizmos) erhöhen, indem Sie auf klicken Gizmos in dem Szene Panel und stellen Sie die Position des Schiebereglers ein.
Ziehen Sie die Ray-Grafik aus der Vermögenswerte der Szene und fügen Sie einen Collider hinzu. Dies ist notwendig, um eine Kollision mit der unglücklichen Kuh zu erkennen. Überprüf denIst Auslöser Option in der Inspektor Panel.
Erstellen Sie ein neues Skript, indem Sie die Schritte wiederholen, die ich vor einiger Zeit beschrieben habe. Benennen Sie das Skript Kugelund ersetzen Sie den Inhalt durch den folgenden Code-Ausschnitt:
mit UnityEngine; using System.Collections; public class Aufzählungszeichen: MonoBehaviour public AudioClip cowSound; // Dies zur Initialisierung verwenden void Start () renderer.enabled = false; / * Macht das Objekt unsichtbar * / // Das Update wird einmal pro Frame aufgerufen. Update () / * Holen Sie die Haupteingabe * / if (Input.GetButton ("Fire1")) renderer.enabled = true; / * Macht das Objekt sichtbar * / / * Spielt den Ray-Sound ab * / audio.Play (); if (renderer.enabled == true) transform.position + = Vector3.down * (Time.deltaTime * 2); / * Prüfen Sie, ob außerhalb der Grenzen * / if (this.transform.position.y < -1.5) transform.position = new Vector2(0.08658695f, 0.1924166f); /* Return bullet to original position */ renderer.enabled = false; void OnTriggerEnter2D(Collider2D other) if (other.gameObject.name == "cow(Clone)") AudioSource.PlayClipAtPoint(cowSound, transform.position); /* Destroy the cow */ Destroy(other.gameObject); transform.position = new Vector2(0.08658695f, 0.1924166f); /* Return bullet to original position */ renderer.enabled = false;
Das ist viel Code, aber es ist nicht kompliziert. Mal sehen was passiert. Zuerst erstellen wir eine Audio clip
Instanz benannt cowSound
, die wir verwenden, um eine Audiodatei zu speichern. Dies ist nur eine weitere Technik zum Abspielen eines Sounds, wenn Sie dem Objekt keine zwei Audiokomponenten hinzufügen möchten. Wir deklarieren die Variable als public, so dass wir von der Variablen aus auf sie zugreifen können Inspektor. Klicken Sie auf den kleinen Punkt rechts von cowSound und wählen Sie die Audiodatei.
Dann machen wir den Strahl unsichtbar, indem wir seinen Renderer deaktivieren. Wir verwenden dasselbe Objekt, um Ressourcen zu sparen, was für weniger leistungsfähige Geräte eine wichtige Optimierung darstellt.
Wir erkennen Berührungen auf dem Bildschirm, die den Strahl sichtbar machen und den Strahlenklang wiedergeben (siehe unten). Wenn das Objekt sichtbar ist, bedeutet dies, dass es heruntergehen sollte, um eine Kuh zu schlagen.
Es gibt auch Code, um zu erkennen, ob sich der Strahl außerhalb der Szenengrenzen befindet. Wenn dies der Fall ist, positionieren wir es neu und sind bereit, erneut zu schießen x und y Werte in der Inspektor).
Der letzte Teil prüft, ob der Strahl eine Kuh trifft. Wenn dies der Fall ist, wird der Kuhton gespielt und die Kuh zerstört. Der Strahl wird dann unsichtbar gemacht und an seiner ursprünglichen Position positioniert, um wieder zu schießen.
Um das Audio für den Strahl hinzuzufügen, wählen Sie es im Feld aus Hierarchie oder Szene anzeigen und klicken Komponente hinzufügen in dem Inspektor Panel. Wählen Audio quelle von dem Audio Sektion. Deaktivieren Sie das Kontrollkästchen Auf Awake spielen Klicken Sie auf den kleinen Punkt rechts, um die Sounddatei auszuwählen.
Ziehen Sie die Grafik für die Kuh aus der Vermögenswerte und positionieren Sie es in der Szene wie unten gezeigt.
Um eine Kollision zu erkennen, muss mindestens eines der kollidierenden Objekte über ein RigidBody2D Komponente zugeordnet. Da die Kuh sowohl mit dem Stall als auch mit dem Strahl kollidieren kann, ist es am besten, die Komponente der Kuh hinzuzufügen.
Wir müssen der Kuh auch einen Kollider hinzufügen, um Kollisionen mit dem Stall und dem Strahl zu erkennen. Stellen Sie sicher, dass Sie das überprüfen Ist Auslöser Kontrollkästchen in der Inspektor.
Fügen Sie der Kuh eine Skriptkomponente hinzu und ersetzen Sie deren Inhalt durch Folgendes:
mit UnityEngine; using System.Collections; public class MoveCow: MonoBehaviour public Vector3 moveSpeed; public float spawnTime = 2f; public float spawnDelay = 2f; // Dies zur Initialisierung verwenden void Start () moveSpeed = Vector3.left * Time.deltaTime; InvokeRepeating ("ChangeSpeed", spawnDelay, spawnTime); void ChangeSpeed () moveSpeed = new Vector3 (Random.Range (-1, -2), 0, 0) * 0.05f; // Update wird einmal pro Frame aufgerufen. Update () transform.position + = moveSpeed;
Das MoveCow
Klasse animiert die Kuh auf dem gesamten Bildschirm mit einer Variablen namens Bewegungsgeschwindigkeit
. Das InvokeRepeating
Die Methode ändert die Geschwindigkeit der Kuh, damit sie von dem Moment an sprintet, in dem sie den Mittelpunkt der Szene erreicht. Dies macht das Spiel schwieriger.
Wenn der Kuh die erforderlichen Komponenten hinzugefügt wurden, ist es Zeit, sie in eine Kuh umzuwandeln Prefab. Was ist ein Fertigteil? Sehen wir uns das Unity-Handbuch an:
"Ein Prefab ist ein wiederverwendbares GameObject-Asset, das in der Projektansicht gespeichert wird. Prefabs können mehrmals pro Szene in beliebig viele Szenen eingefügt werden. Wenn Sie einer Szene ein Prefab hinzufügen, erstellen Sie eine Instanz davon Instanzen sind mit dem ursprünglichen Prefab verknüpft und stellen im Wesentlichen Klone davon dar. Unabhängig von der Anzahl der Instanzen in Ihrem Projekt, wenn Sie Änderungen am Prefab vornehmen, werden die Änderungen auf alle Instanzen angewendet. "
Wenn Sie von Flash und ActionScript kommen, sollte Ihnen das bekannt vorkommen. Um die Kuh in ein Fertigteil zu verwandeln, ziehen Sie die Kuh aus der Hierarchie Panel zum Vermögenswerte Panel. Als Ergebnis der Name in der Hierarchie wird blau werden.
Durch die Umwandlung der Kuh in ein Fertigteil können wir sie wiederverwenden, was praktisch ist, da sie bereits die erforderlichen Komponenten enthält.
Das Spawner-Skript ist für das Erscheinen der Kühe verantwortlich. Öffnen Sie MonoDevelop (oder Ihren bevorzugten C # -Editor) und erstellen Sie ein neues Skript:
mit UnityEngine; using System.Collections; öffentliche Klasse Spawner: MonoBehaviour public float spawnTime = 2f; public float spawnDelay = 2f; öffentliche GameObject-Kuh; // Dies zur Initialisierung verwenden void Start () InvokeRepeating ("Spawn", spawnDelay, spawnTime); void Spawn () / * Instanziieren einer Kuh * / GameObject-Klon = Instanziieren (Kuh, transform.position, transform.rotation) als GameObject;
Wir nennen das InvokeRepeating
Methode, um Kühe mit den von SpawnTime
und SpawnDelay
. Das GameObject
Kuh
ist auf public gesetzt und wird mit dem erstellt Inspektor. Klicken Sie auf den kleinen Punkt auf der rechten Seite und wählen Sie die Kuhfabrikation aus.
Um das Kuh-Fertigteil zu instanziieren, verwenden wir die Grafik der Kuh, die wir vor einigen Minuten der Szene hinzugefügt haben. Wählen Sie es aus und entfernen Sie seine Komponenten. Fügen Sie dann das Spawner-Skript hinzu.
Es ist Zeit, das Spiel zu testen. Drücken Sie Befehl + P
um das Spiel in Unity zu spielen. Wenn alles wie erwartet funktioniert, sind Sie bereit für die letzten Schritte.
Wenn Sie mit Ihrem Spiel zufrieden sind, ist es Zeit zu wählen Einstellungen erstellen von dem Datei Menü und klicken Sie auf die Player-Einstellungen Taste. Das bringt die Player-Einstellungen in dem Inspektor Panel, wo Sie die Parameter für Ihre Anwendung anpassen können.
Mit den zuvor erstellten Grafiken können Sie jetzt ein schönes Symbol für Ihr Spiel erstellen. Unity zeigt Ihnen die erforderlichen Größen, die von der Plattform abhängen, für die Sie eine Plattform erstellen.
Das Startbild oder Startbild wird angezeigt, wenn die Anwendung gestartet wird.
Sobald Ihr Projekt richtig konfiguriert ist, ist es an der Zeit, das Projekt erneut zu besuchen Einstellungen erstellen und klicken Sie auf die Bauen Taste. Das ist alles, was Sie brauchen, um Ihr Spiel zum Testen und / oder Verteilen zu entwickeln.
Wenn Sie für iOS erstellen, benötigen Sie Xcode, um die endgültige Anwendungsbinärdatei zu erstellen. Öffnen Sie das Xcode-Projekt und wählen Sie Bauen von dem Produkt Speisekarte.
In diesem Lernprogramm haben wir die neuen 2D-Funktionen von Unity, die Kollisionserkennung und andere Aspekte der Spieleentwicklung mit Unity kennen gelernt.
Experimentieren Sie mit dem Ergebnis und passen Sie es an, um das Spiel zu Ihrem eigenen zu machen. Ich hoffe, dass Ihnen dieses Tutorial gefallen hat und es hilfreich war.