Machen Sie ein 2D-Videospiel mit Unity

19 Schritt:Schritt 1: Laden Sie die kostenlose Software Unity Schritt 2: Öffnen Sie Unity Schritt 3: Erstellen Sie Ihren ersten Spielobjekt Schritt 4: Fügen Sie eine Spieler Schritt 5: Fügen Sie etwas Leben Robot Schritt 6: Die Robotersteuerung Script Schritt 7: Lass Jumping - Spieler Controller Skript Fortsetzung Schritt 8: Machen Sie eine Mischung Baum Zeichentrick Schritt 9: Destroyers Schritt 10: Die Hand Schritt 11: Bleistiftlinie Schritt 12: Bewegen Sie die Kamera! Schritt 13: Fügen Sie eine Punktzahl Schritt 14: Bombs Away Schritt 15: Bomb Spawning Schritt 16: Platforms (oder Kritzeleien) Schritt 17: Bonuspunkt Pickups Schritt 18: Game Over Schritt 19: Dateien, etc

Machen Sie ein 2D-Videospiel mit Unity

Machen Sie ein 2D-Videospiel mit Unity

Machen Sie ein 2D-Videospiel mit Unity

Machen Sie ein 2D-Videospiel mit Unity


In diesem Instructable, werde ich Ihnen zeigen, einen wirklich einfachen 2D-Video-Spiel zu machen. Es ist eine unendliche Läufer Stil Spiel, wie "With Me" Fly oder "DoodleJump".

Probieren Sie es aus hier !!

Ich habe eine zip der exe des Spiels werde ich zeigen Ihnen, wie Sie zur Verfügung gestellt. Laden Sie es und probieren Sie es aus.

Es ist ganz unvollständige so weit wie ein Spiel geht, aber diente mir als eine fantastische Gelegenheit, um ein wenig von C # scripting zu lernen und das Wissen der Einheit habe ich da mit dem Download vor zwei Wochen aufgenommen zu verfestigen. Für die Zwecke des Teilens, beschloss ich, Instructables als Hauptfigur zu verwenden eigenen liebenswerten Roboter. Ich ging für eine vereinfachende Blick in Hommage an jene Karikaturen von einst im gleichen Stil. Ich habe immer geliebt, wenn der Stift interagiert mit der Karikatur.

Ich muss sagen, dass Unity ist ein unglaubliches Werkzeug. Es gibt eine Fülle von Informationen im Lernbereich des Unity-Website, empfehle ich ihm einen Blick durch, nachdem Sie gesehen haben, wie einfach es ist, zu beginnen, 2D-Spiele.

Alles, was ich hier zeigt Ihnen, von der habe ich gelernt, Unity-Website , sie haben einige große Tutorials und Video-Schulungen.

Ich bin neu in Unity, wie Sie kann, muss aber nicht sein, so ist dies nur, um meine Liebe für die Umwelt und meine Lernerfahrung bisher zu teilen.

Ich werde die Sprite-Vermögenswerte für jeden Schritt bereitzustellen, so dass Sie entlang folgen können, und machen das Spiel selbst. Ich empfehle, nicht mit meinem Code wie es ist, sondern folgende entlang und Schreiben Sie Ihre eigene Version von den gleichen Skripten.

Ich habe wenig bis gar keine Erfahrung Programmierung in C, und doch war Scripting in C # sehr schnell .... es erinnert mich ein schreckliches Los Arduino und Processing, die ich kenne.

Also selbst wenn Sie nicht vertraut mit der Programmierung zu haben, ich glaube, Sie könnten dies auch tun. Mindestens folgen zusammen mit meinem Abenteuer zu sehen, wie einfach es war.

Schritt 1: Laden Sie die kostenlose Software Unity

  1. Machen Sie ein 2D-Videospiel mit Unity
    Bascillay Unity ist so freundlich, lassen Sie die von uns, könnten wir in Spiel dev erhalten möchten, nehmen Sie einen Stich an, es zu lernen kostenlos, solange wir kein Geld verdienen mit Produkten, die wir machen, mit ihrer Software. Genial. Vielen, vielen Dank Unity, für die Förderung und die Freiheit, um es auszuprobieren, und für die unglaubliche Software.

    Wenn Sie auf folgenden zusammen planen, müssen Sie auf die gehen Unity Homepage und laden Sie die kostenlose Version der Software.
    Sie müssen auch einen Unity-Login zu erstellen, folgen Sie einfach den Schritten nach der Installation.

Schritt 2: Öffnen Sie Unity

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Wenn Sie zum ersten Mal öffnen Unity, werden Sie mit einem Dialogfeld dargestellt werden, um ein neues Projekt zu erstellen. Wechseln Sie zu einem geeigneten Ort, und geben Sie Ihrem Projekt einen Namen, so etwas wie "Iblejump".
    Es ist sehr wichtig, um die 2D-Auswahl am unteren Rand des Formulars, wo es heißt "Setup Defaults Für" überprüfen.

    Sie brauchen nicht zu einem der Pakete für das Spiel werden wir machen zu importieren. Ich würde raten, nicht mit ihnen zu belästigen, wenn Sie sie für Ihr Spiel. Keinen Sinn, einschließlich zusätzliche Masse in unseren Build-Dateien.

    Wenn Sie die richtige Auswahl getroffen haben, gehen Sie vor und klicken Sie auf 'Erstellen'.

    Nun ist die Unity-Editor wird unser neues leeres Projekt geöffnet und präsentieren uns mit einem schönen willkommen popup. Lassen Sie uns zu schließen, dass für jetzt und erkunden Sie die Schnittstelle ein wenig.

    Der Arbeitsbereich ist in vier Abschnitte, die Sie organisieren, um Ihren Arbeitsablauf passen unterteilt.

    Das Hierarchiefenster auf der linken Seite zeigt Ihnen alle Objekte, die sich derzeit in der Szene. Die Szene-Fenster, wo wir bauen und legen unsere Spielobjekte.

    Unten haben wir einen anderen Arbeitsbereich, wo Sie ein Dock abdocken verschiedenen Registerkarten können. Die meisten der Registerkarten kann in einem Gebiet, das Sie bequem angedockt werden. Dies ist, wie ich meine Bereich eingerichtet, könnte man es anders machen ein wenig. Die wichtigste Sache zu beachten ist, dass Sie alle diese Fenster aus dem Fenster zugreifen können Pulldown-Menü, und addieren oder subtrahieren sie als nötig. Sie brauchen sich keine Sorgen, wenn Ihr Fenster nicht identisch aussehen. Ich werde Ihnen zeigen jeden der Bereiche werden wir im Detail verwenden, wie wir gehen.

    Denn jetzt, klicken Sie einfach auf "Hauptkamera", so dass Sie sehen können, was passiert, während auf der rechten Seite in der Inspector und Szenenfenster.
    Beachten Sie, wie Sie jetzt eine Vorschau der leeren Szene in der unteren Ecke des Szene-Fenster, und alle Komponenten und Eigenschaftswerte für die Kamera ausgesetzt sind.

Schritt 3: Erstellen Sie Ihren ersten Spielobjekt

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity


    Zunächst werden Sie den Ordner, Sprites, die ich als gezippte Datei enthalten müssen. Extrahieren Sie den Ordner, um irgendwo Sie es finden können.

    In Unity, die in der Projektarbeitsbereich auf der Registerkarte Projekt, mit Assets ausgewählt, ziehen Sie den entpackten Ordner in den grauen Bereich auf der rechten Seite. Alle Sprites, die Sie benötigen, um mein Projekt zu duplizieren sind in diesem Ordner.

    Navigieren Sie zum Ordner neue Sprites und finden Sie ein Sprite mit dem Namen "navbar". Ziehen Sie, dass bis in die Scene-Fenster. Legen Sie es irgendwo in der Nähe der Unterseite der Szene, als ich in das Bild gemacht haben.

    Wenn Sie Hauptkamera klicken Sie in der Hierarchie-Fenster, nachdem Sie es, können Sie bereits sehen, wie es in Ihrem Spiel zu suchen.

    Wir müssen einige Komponenten hinzufügen, lassen Sie mit einem Kasten colllider starten, um unsere solide Box zu machen.

    Mit Ihrem neuen Objekt ausgewählt, im Inspector, klicken Sie auf "Komponenten hinzufügen" und fügen Sie dann eine Box Collider 2D unter Physics2D gefunden

    Gehen Sie voran und fügen Sie einen zweiten 2D-Box Collider, um Ihre Aufgabe, diesen einen werden wir nutzen, um die Spieler aus Versehen fallen von der Seite der Navigationsleiste rechts am Anfang des Spiels zu blockieren.

    Denn ich wollte Robot über, wo er ist auf der Webseite Instructables starten, geschrumpft I der Haupt Collider ein wenig. Und die zweite Collider tatsächlich sitzen im offenen Raum, der unsere Spieler von Ablaufen der linken Seite, wenn das Spiel beginnt, verhindert.

    Ihre Box Collider gesetzt, um die Größen in der Bild übereinstimmen, auch legen Sie die X- und Y-Größe des Umwandlungsparameter bis 1,5. Beobachten Sie die Veränderungen stattfinden, in der Szene-Fenster.

Schritt 4: Fügen Sie eine Spieler

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 9 Artikel anzeigen
    Jetzt haben wir eine Plattform für unsere Spieler zu stehen, brauchen wir einen Spieler.

    Klicken Sie auf Gameobject in der oberen Menüleiste, wählen Sie erstellen leer.

    Wählen Sie ein neues leeres Spiel Objekt in der Hierarchie-Fenster, und über im Inspector, ändern ihren Namen, um Spieler.
    Als nächstes fügen Sie ein Sprite Renderer Komponenten, unter Rendering gefunden.

    In dem Ordner Projekt assets / Sprites, finden Sie das Idle_Sprite, klicken Sie auf das kleine Dreieck neben ihm und ziehen Sie dann eines der Bilder in das Sprite-Wert der Sprite-Renderer-Komponente.

    Wir müssen noch ein paar Komponenten für unsere Spieler. Zuerst fügen Sie ein Rigidbody2D von den Physics2D Entscheidungen.

    Wenn Sie die Play-Taste drücken, jetzt wird unser Spieler über die Navigationsleiste zu fallen. Machen Sie es ausprobieren.

    Wir werden das zu beheben, indem ein paar Collider. Etwas Gegen intuitiv, werden wir einen Kreis Collider zu unseren Füßen und Körper, und ein Feld-Collider in unseren Kopf hinzuzufügen.

    Nun, wenn wir spielen drücken, unser kleiner Roboter wird auf den Rücken rollen wie jeder Kreis Boden Roboter würde. Fix, dass durch die feste Kontrollkästchen Angle Kontrolle, und dann, wenn Sie spielen drücken, sollten Sie Ihre Roboter in die Navigationsleiste fallen und Ruhe es schön.

    Er ist ein wenig groß für meinen Geschmack, so dass ich seine Größe in transformieren, um 0,75 x 0,75 und y verändert.

    Dann mit der Positionierung der Navigationsleiste und Roboter fummelte ich, bis ich war glücklich.

    Jetzt ist ein guter Zeitpunkt, um Ihre Szene zu speichern, geben Sie ihm einen Namen, der gut zu dir fühlt und zu speichern.

Schritt 5: Fügen Sie etwas Leben Robot

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 14 Artikel anzeigen
    Okay, jetzt, da wir das Spielerobjekt in Ort haben, können wir beginnen, einige Animationen und Funktionalität, um es hinzuzufügen.

    Mit dem Player-Objekt ausgewählt, fügen Sie einen Animator Component. Komponente hinzufügen -> Sonstiges -> Animator.
    Deaktivieren Sie die Option "Übernehmen Root-Motion", und überprüfen Sie die "Animate Physik" ein.

    Jetzt öffnen Sie Ihre Fenster Animator. Sie können dies über das Fenster tun Pulldown, wenn es nicht bereits in der Projektarbeitsbereich geöffnet. Ich mag zu mir an der Unterseite andocken.

    Mit Spieler noch in Hierarchie ausgewählt, Öffnen Sie das Animationsfenster. Es kann auch im Fenster nach unten ziehen zu finden. Ich mag zu mir in der gleichen Gegend wie meine Szene und Spiel-Fenster andocken.

    Im Animationsfenster, klicken Sie auf die kleinen kleinen Dreiecke neben "Probe", um einen neuen Clip erstellen.

    Unten, öffnen Sie Ihren Aktiv- / Ordner Sprites und die Öffnung des Leerlauf Sprite wieder. Umschalttaste wählen Sie die gesamte Serie von Bildern und ziehen Sie sie bis zum Animationsfenster.

    Da der Animator (me) war billig auf Rahmen, setzen Sie den Stichprobengröße bis 10.

    Nun ein Blick auf Ihre Animator, sollten Sie automatisch zwei Zustände hinzugefügt, ein jeder Staat und eine neue Standardzustand, Standby. Die orange Farbe zeigt uns, dass es die Standardanimation Zustand.

    Wenn Sie diese Schritte korrekt befolgt haben, sollten Sie eine animierte Roboter jetzt haben, wenn Sie Play drücken.

    Erstellen Sie eine weitere Animation und nennen es zu fahren. Verwenden Sie das Laufwerk Sprite Blatt. Wieder, verringern Sie die Bildrate. Ich stelle es bei 20 für den Moment. Sie können ihn später nach Ihren Wünschen tweek.

    In der Animator Fenster, werden Sie sehen, dass ein zweiter Staat automatisch erstellt. Toll! Lassen Sie uns einen Schwimmer ein Parameter mit dem Namen "Speed" in den unsere Animator, bevor wir die Übergänge zu schaffen.

    Jetzt klicken Sie rechts auf den Ruhezustand, und wählen Sie "machen Transition". Ziehen Sie dann mit der Antriebszustand. Dies sollte einen kleinen Pfeil bar zu machen. Wählen Sie das Dreieck in der Mitte des Übergangs bar. Ändern Sie den Übergangszustand in dem Inspektor zu sein, wenn die Geschwindigkeit größer als 0,01. Erstellen Sie nun einen Übergang von Fahrt zurück, um mit der Bedingung, die Geschwindigkeit weniger als 0,01 im Leerlauf laufen.

    Als Nächstes werden wir brauchen, um einen Controller Skript für Roboter zu bauen.

Schritt 6: Die Robotersteuerung Script

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Jetzt haben wir einen Spieler mit einigen Animation Staaten, brauchen wir ein Skript, um den Charakter zu steuern. Wir werden eine einfache C # Skript, um unser Projekt zu unserem Spieler steuern hinzuzufügen.

    Im Projekt-Fenster, einen neuen Ordner und nennen es Scripts. Öffnen Sie diesen Ordner und erstellen Sie eine neue C # Skript, nennen es RobotController.

    Doppelklicken Sie auf das Skript zu MonoDevelop starten. Es kann einen Moment dauern, sich zu öffnen, seien Sie geduldig.
    Geben Sie den folgenden Code, um zu beginnen
     Verwendung UnityEngine;
     using System.Collections;
    
     public class RobotController: MonoBehaviour {
     // Dies wird unsere maximale Geschwindigkeit sein, wie wir immer multipliziert werden, um 1
     public float maxSpeed ​​= 2f;
     // Ein boolescher Wert zu repräsentieren, ob wir nach links oder nicht
     bool facingLeft = true;
     // Wert für unsere Animator vertreten
     Animator anim;
     // Das für die Initialisierung verwenden
     void start () {
     // Set anim unsere Animator
     anim = GetComponent <Animator> ();
    
     }
    
     // Aktualisierung wird einmal pro Rahmen genannt
     Leere FixedUpdate () {
    
     schweben move = Input.GetAxis ("Horizontal"); // Gibt uns eines, wenn wir über die Pfeiltasten bewegen
     // Bewegen unsere Spieler rigidbody
     rigidbody2D.velocity = new Vector3 (verschieben * maxSpeed, rigidbody2D.velocity.y);
     // Unsere Geschwindigkeit eingestellt
     anim.SetFloat ("Speed", Mathf.Abs (move));
     // Wenn wir uns bewegen gelassen, aber nicht nach links drehen sie um, und umgekehrt
     if (move <0 &&! facingLeft) {
    
     Flip ();
     } Else if (verschieben> 0 && facingLeft) {
     Flip ();
     }
     }
    
     // Flip, wenn nötig
     Leere Flip () {
     facingLeft = facingLeft!;
     Vector3 theScale = transform.localScale;
     theScale.x * = -1;
     transform.localScale = theScale;
     }
     }
    

    Speichern Sie das Skript und zum Unity-Fenster. Ziehen Sie das neue RobotController Skript aus der Projektarbeit sind auf das Player-Objekt in der Hierarchie-Fenster. Drücken Sie die Play-Taste, um das Spiel zu starten, und Sie sollten in der Lage, den Roboter mit der linken und rechten Pfeiltasten zu steuern. Wenn Sie das Animator Fenster unter dem Spiel zu öffnen, sollten Sie die Animation wechselnden Zustände von Antriebs je nachdem, ob oder nicht Roboter bewegt sich in den Leerlauf.

Schritt 7: Lass Jumping - Spieler Controller Skript Fortsetzung

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 7 Artikel anzeigen
    Nur ein paar Schritte, um unsere Spieler erhalten jumping implementieren.
    Wir werden eine Animation Zustand für Springen und fallen müssen, und auch einige mehr Code, um die Dinge zu kontrollieren.

    Lassen Sie `s um zwei weitere Parameter, um unsere Spieler Animator starten. Fügen Sie einen float namens `vSpeed``and eine Bool namens` Ground`. Wir werden vspeed nutzen, um unsere vertikale Geschwindigkeit zu halten, und Boden in Kraft sein werden, die uns helfen zu erkennen, wenn unser Charakter ist auf dem Boden, so dass für eine realistischere Sprung. (Springen durch die Luft, ohne den Boden zu berühren ist eher wie Fliegen).

    Zurück in der Szene-Fenster ein neues leeres Objekt Spiel. Nennen Sie es, Erdungs- und fügen Sie eine 2D-Kreis Collider zu.
    Ziehen Sie das neue Collider in das Player-Objekt in der Hierarchie-Fenster. Ändern Sie den Radius von Erdungs- der Collider bis 0,1, und ändern Sie es y transformieren Position auf -1. Dies stellt eine winzig kleine Kreis rechts unter Robots Füßen. Tag setzen auch als Spieler und legte in auf dem Spieler-Layer.

    Nun wollen wir aktualisieren unsere scrip unsere neue Parameter und setzen Sie den Code in Ort, um Robot Sprung zu machen, wenn die Leertaste gedrückt wird.

    Aktualisieren Sie Ihre RobotController Skript wie folgt aussehen.

     Verwendung UnityEngine;
     using System.Collections;
    
     public class RobotController: MonoBehaviour {
    	 // Dies wird unsere maximale Geschwindigkeit sein, wie wir immer multipliziert werden, um 1
    	 public float maxSpeed ​​= 2f;
    	 // Ein boolescher Wert zu repräsentieren, ob wir nach links oder nicht
    	 bool facingLeft = true;
    	 // Wert für unsere Animator vertreten
    	 Animator anim;
             // Mit Masse zu überprüfen und eine Jumpforce können wir im Editor zu ändern
    	 bool geerdet = false;
    	 öffentliche Trans Erdungs- kontrolle;
    	 schweben groundRadius = 0.2f;
    	 öffentliche Ebenenmaske whatIsGround;
    	 public float Jumpforce = 700f;
    
    	 // Das für die Initialisierung verwenden
    	 void start () {
    		 // Set anim unsere Animator
    		 anim = GetComponent <Animator> ();
    
    	 }
    	
    	
    	 Leere FixedUpdate () {
                     // Unsere vspeed eingestellt
    		 anim.SetFloat ("vspeed", rigidbody2D.velocity.y);
                     // Unsere geerdeten bool eingestellt
    		 Masse = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
    		 // Setze Boden in unserem Animator geerdet übereinstimmen
    		 anim.SetBool ("Ground", geerdet);
    
    
    		 schweben move = Input.GetAxis ("Horizontal"); // Gibt uns eines, wenn wir über die Pfeiltasten bewegen
    		 // Bewegen unsere Spieler rigidbody
    		 rigidbody2D.velocity = new Vector3 (verschieben * maxSpeed, rigidbody2D.velocity.y);	
    		 // Unsere Geschwindigkeit eingestellt
    		 anim.SetFloat ("Speed", Mathf.Abs (move));
    		 // Wenn wir uns bewegen gelassen, aber nicht nach links drehen sie um, und umgekehrt
    		 if (move <0 &&! facingLeft) {
    			
    			 Flip ();
    		 } Else if (verschieben> 0 && facingLeft) {
    			 Flip ();
    		 }
    	 }
    
    	 Leere Update () {
                     // Wenn wir auf dem Boden und die Leertaste gedrückt wurde, ändern unsere Grundzustand an und füge eine nach oben gerichtete Kraft
    		 if (geerdet && Input.GetKeyDown (KeyCode.Space)) {
    			 anim.SetBool ("Ground", false);
    			 rigidbody2D.AddForce (neu Vector2 (0, Jumpforce));
    		 }
    		
    		
    	 }
    
    	 // Flip, wenn nötig
    	 Leere Flip () {
    		 facingLeft = facingLeft!;
    		 Vector3 theScale = transform.localScale;
    		 theScale.x * = -1;
    		 transform.localScale = theScale;
    	 }
     }
    
    
    Rückflug wieder an die Robotersteuerung Script im Inspector, und achten Sie darauf, setzen Was ist Boden, um alles außer Player. Wählen Sie alles, dann öffnen Sie den Dialog erneut und deaktivieren Spieler. (Danke C0)

    Im nächsten Schritt werden wir ein Animator Mischung Baum zu hand springen und fallen zu erstellen.

Schritt 8: Machen Sie eine Mischung Baum Zeichentrick

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 11 Artikel anzeigen
    Lassen Sie uns eine Mischung Baum in unseren verschiedenen Fallen halten / Springen Staaten. Wir könnten getrennte Animationen für beides zu tun, aber das ist effizienter und weniger Masse für unser kleines Spiel. Plus ist es cool. (Habe ich erwähnt, dass Unity beherbergt einige große Lernmaterial?)

    Gehen Sie auf Ihrem Player Animationsfenster, mit ihren Spieler Objekt ausgewählt zu erstellen 5 neue Animationsclips, benennen Jump1 -jump5.

    Für jeden Clip, ziehen Sie einen Rahmen aus jumpsheet, um. dh erste Bild jumpsheet zu Jump1, und so weiter.

    Öffnen Sie das Animator Fenster wieder der rechten Maustaste, Kreation ... neues von fad Baum. Nennen Sie es JumpFall.
    Klicken Sie auf den neuen Zustand JumpFall Double, das Öffnen der Mischung Baum in der Inspektor.

    Klicken Sie auf das kleine Pluszeichen hinzufügen und Bewegungsfeld, tun dies fünf Mal.

    Ändern Sie den Schwellenwert auf einen Bereich von -13 bis 10, und ändern Sie die Schwellenwertparameter zu vspeed werden.

    Wenn Sie mit der Animation zufrieden sind, können Sie die Werte durch Deaktivieren Automate Threshold zwicken. Aus diesem einfachen Spiel, so scheint es gut genug. (Animator bekam faul ... again)

    Nun zum Animator Fenster zurückzukehren, sehen Sie die Mischung Baum geöffnet, klicken Sie auf Base Layer in der linken oberen Ecke, um zurück zu unserem Basiszustände gehen.

    Sie sollten alle automatisch generierten Sprung Staaten Jump1 durch Jump5 jetzt auch löschen. (Danke C0)

    Creat einen Übergang von der Staates, auf die neue JumpFall Zustand, und dann eine von JumpFall über den Leerlauf. Das heißt, wir können aus jedem Zustand in den Sprung Animation gehen, das heißt, wenn wir fallen.

    Stellen Sie den Übergang aus jedem Zustand zu JumpFall zu suchen, wenn Boden ist falsch, und der Übergang von JumpFall zu Boden, wenn wahr ist im Leerlauf.

    Alles erledigt, starten Sie das Spiel erneut, und Sie sollten in der Lage, Robot Sprung zu machen und animieren mit der Leertaste können. Die Animation ist ein wenig ruckelt mangels Rahmen, können Sie mit dem Bewegungsfeld zu spielen, um es ein wenig ändern, wenn Sie mögen.

Schritt 9: Destroyers

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 10 Artikel anzeigen
    In den nächsten Schritten werden wir die Erstellung von Objekten, die mehrere Objekte laichen und ohne einige bereinigen geht, wird unser Spiel schnell festgefahren. In diesem Sinne, wir kümmern uns um saubere Aufnahme, indem einige Objekte aus dem Bildschirm, um Objekte zu zerstören, als sie den Spielbereich zu verlassen.

    Unser Spiel wird eine Seite Scroller sein, so werden wir eine unterhalb der Szene platzieren, um herabfallende Gegenstände (wie die Spieler) und einen offscreen nach links, um aufzuräumen alles, was bereits durch gescrollt hat zu fangen.

    Erstellen Sie zunächst ein Quad. Klicken Sie auf Gameobject -. Gestalte andere -> Quad. Ändern Sie es zu transformieren Lage, x und y auf -25 auf 0 Setzen Sie dann die Skala zu transformieren, so ist X 1 und y 25.

    Geben Sie dem Quad-Objekt einen coolen Namen, wie Destroyer Entfernen Sie die Netz Collider Komponente und fügen Sie ein Feld Collider 2D, aber dieses Mal Markieren Sie das Feld "Ist Trigger".

    Fügen Sie außerdem einen rigidbody 2D auf, aber setzen Sie die Schwerkraft Skala im Fenster auf Null.

    Im Projekt-Arbeitsbereich, öffnen Sie Ihren Ordner Scripts, und fügen Sie eine neue C # Skript, nennen Sie es Destroyer. Doppelklicken Sie auf es, und öffnen Sie Monodevelop.

    Geben Sie folgenden Code in das neue Skript und speichern Sie es.

     Verwendung UnityEngine;
     using System.Collections;
    
     public class Destroyer: MonoBehaviour {
    
    	 // Das für die Initialisierung verwenden
    	 void start () {
    	
    	 }
    	
    	 Leere OnTriggerEnter2D (Collider2D andere) {
    		 //, Wenn das Objekt, das das Ereignis ausgelöst wird getaggt Spieler
    		 if (other.tag == "Player") {
    			
    						 Debug.Break ();
    						 zurück;
    				 }
    			 if (other.gameObject.transform.parent) {
    				 Destroy (other.gameObject.transform.parent.gameObject);
    			 } Else {
    				 Destroy (other.gameObject);		
    			 }
    	 }
    
     }
    

    Ziehen Sie das Zerstören Skript auf den Destroyer Objekt.
    Jetzt der rechten Maustaste auf den Destroyer Objekt in der Hierarchie-Fenster, und wählen Sie Duplizieren. Ändern Sie die Transformation der neuen Zerstörer an der Position x = 0, y = -15, und die Skala auf x = 50 und y = 1.

    Wenn Sie Ihr Spiel jetzt laufen, und zu Fuß von der Plattform (denken Sie daran, es gibt eine unsichtbare Barriere auf der linken Seite), sollte er das Spiel unterbrechen und bringen Sie zurück in den Editor.

    Wir werden, dass in einem späteren Schritt zu beheben.

    Das letzte, was mit unseren Destroyer Objekten zu tun ist, um sie Kindern aus der Kamera-Objekt zu machen, wie wir wollen, dass sie zu folgen oder sie gewann `t viel überhaupt tun. Um dies zu tun, wählen Sie sie und ziehen Sie sie in die Hauptkamera-Objekt.

Schritt 10: Die Hand

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 7 Artikel anzeigen
    Die Hand, die Linie zieht ist ziemlich einfach. Let`s machen.

    Ziehen Sie zuerst die Hand Sprite in das Szenenfenster, positionieren Sie es, indem Sie Ihre Kamera-Objekt zu sehen, wo es in der Szene sitzt.

    Verwandeln Sie den Maßstab so x = 2 und y = 2.

    Erstellen Sie ein neues leeres Objekt Spiel, und nennen Sie sie Penciltip. Verwenden Sie den Szenen-Editor, um sie an der Spitze des Bleistifts zu positionieren.

    Geben Sie ihm einen kleinen Tag, so dass Sie sie leicht finden können, wenn es sein muss. Tun Sie dies, indem Sie auf den kleinen Würfel-Symbol in der Inspector.

    Ziehen Sie nun Penciltip in die Hand Objekt, um sie miteinander zu koppeln. Schließlich ziehen Sie die Hand-Objekt in der Hauptkamera im Hierarchiefenster.

    Dabei spielt es keine nichts zu tun, aber die Stücke sind an Ort und Stelle. lässt einige andere Bits, die wir benötigen, eingestellt.

Schritt 11: Bleistiftlinie

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 14 Artikel anzeigen
    Ein Fertighaus ist wie eine Aufnahme von einem Objekt, das Objekt in ein Fertig machen Sie und können es nach Belieben in Ihrer Szene verwenden.
    Wir werden für viele der Rest des Spiels werden mit ihnen, während der Pegel programmatisch erzeugt.

    Beginnen Sie, indem Sie einen neuen Ordner im Ordner Assets, und nennen es Prefabs. Erstellen Sie eine neue Prefab durch einen Rechtsklick und Auswahl von Prefab. Benennen Sie den neuen Prefab pencilline.

    Finden Sie das Sprite namens pencilline im Sprite-Ordner, und ziehen Sie es in die neue Gameobject im Hierarchiefenster.

    Fügen Sie ein Feld Collider 2D- und ändern Sie die Größe, um die pencilline image.0.03 um 0,05 Werke passen.

    Öffnen Sie Ihre Prefab Ordner, und ziehen Sie den Gameobject auf das Fertig. Das Symbol wird geändert, um die neue Fertig entsprechen.

    Löschen Sie das Spiel-Objekt, wenn Sie es in Ihre Fertig platziert haben. Wir gewannen `t mehr brauchen das Original.

    Nun fügen Sie eine neue C # Skript zu Ihrem Ordner Scripts, nennen es pencilline. Öffnen Sie es und geben Sie das folgende Skript.

     Verwendung UnityEngine;
     using System.Collections;
    
     public class pencilline: MonoBehaviour {
    
    	 // Um ​​zu unserem Fertig pencilline beziehen
    	 öffentlichen Gameobject obj;
    	
    	 schweben lastx = 0f;
    	 // Das für die Initialisierung verwenden
    	 void start () {
    		
    	 }
    	
    	 // Aktualisierung wird einmal pro Rahmen genannt
    	 Leere Update () {
    		
    		 // Wenn wir umgezogen sind weit genug, einen neuen pencilline
    		
    		 if (Transformieren.Position.X> (lastx + 0.02f)) {
    			
    			
    			 Instanziieren (obj, transform.position, Quaternion.identity);
    			 lastx = Transformieren.Position.X;
    			
    			 lastx = Transformieren.Position.X;
    			
    		 }
    		
    	 }
     }
    
    Ziehen Sie das Skript auf die penciltip Objekt in Hand. Dann mit penciltip noch ausgewählt ist, öffnen Sie Ihr Fertig Ordner und ziehen Sie Ihre pencilline Fertig auf die neue obj Parameter auf Ihr Skript-Controller.

    Unsere Kamera hat immer noch keine Kontrolle Skript, aber wenn du das Spiel zu starten, sollten Sie eine an der Spitze des Bleistifts erzeugt pencilline Objekts. Sie können es sehen, weil der Hintergrund ist blau und die Linie für einen weißen Hintergrund.

Schritt 12: Bewegen Sie die Kamera!

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Lassen Sie uns Sie uns die Kamera Rollen.
    Der Camera-Objekt ist alles gemacht, so dass wir wirklich brauchen nur einen Controller Skript.

    Nur eine kleine Änderung, bevor wir das Drehbuch schreiben. Die Hintergrundfarbe. Es muss weiß sein, wird die Linie crumby aussehen, wenn nicht, nicht, um die Haftnotizen sollten Sie sich entscheiden, sie zu verwenden zu nennen.

    Wählen Sie einfach die Hauptkamera im Hierarchiefenster, und klicken Sie auf das Farbfeld im Inspektor, eine Farbauswahl wird angezeigt. Wählen Sie weiß.

    Okay, neues Skript, rief ich mir Pancam. Erstellen Sie in Ihrem Skript Ordner und öffnen Sie sie in Monodevelop, und geben Sie die folgende.

     Verwendung UnityEngine;
     using System.Collections;
    
     public class Pancam: MonoBehaviour {
    
    	 schweben ydir = 0f;
    	 öffentlichen Gameobject-Player;
    
    	 // Das für die Initialisierung verwenden
    
    	 // Aktualisierung wird einmal pro Rahmen genannt
    	 Leere Update () {
    		 // Überprüfen, dass Spieler existiert und fahren Sie dann.  ansonsten eine Fehlermeldung erhalten, wenn wir Spieler stirbt
    		 if (Spieler) {
    			 //, Wenn Spieler die x-Position von -1 übergeben, dann fangen Sie an der Kamera nach vorne mit einem randomish Y-Position
    			 if (player.transform.position.x> -1) {
    
    				
    				 schweben randy = 0f;
    				 randy = Random.Range (0f, 100f);
    				 if (Randy <20) {
    					 ydir = ydir + .005f;
    				 } Else if (Randy> 20 && randy <40) {
    					 ydir = ydir - .005f;
    				 } Else if (Randy> 80) {
    					 ydir = 0f;
    				 }
    				 transform.position = new Vector3 (Transformieren.Position.X + 0.03f, transform.position.y + ydir, -10);
    			 }
    		 }
    	 }
     }
    
    
    Jetzt müssen Sie nur das Skript auf Ihre Hauptkamera in Hierarchie gelten, und ziehen Sie das Player-Objekt auf den Parameter Skript.

    Versuchen Sie erneut, das Spiel, die Sie gerade gemacht haben, eine unendliche Läufer !!! Naja, fast. Wir müssen noch ein paar Dinge, aber es wird immer enger jetzt.

    Meine Hand ist nur ein wenig höher als ich es will, aber ich werde nur schubsen sie sich ein wenig in der Szene-Editor.

Schritt 13: Fügen Sie eine Punktzahl

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 7 Artikel anzeigen
    Neuen GUIText Objekt aus der Gameobject-Menü und nennen Sie es Score.

    Ändern Sie den Text-Wert ein Tor und die Farbe auf Schwarz in der Inspector.
    Öffnen Sie das Spiel-Fenster, wenn es nicht verfügbar ist, können Sie es unter dem Fenster finden Sie unten ziehen an der Spitze.

    Stellen Sie die Transposition, funktioniert es komisch für GUI-Objekte aus irgendeinem Grund, betrachten Sie es als Prozent des sichtbaren Bildschirm, wo 0,5 50% und 0,0 ist der unteren linken Ecke.
    X = 0,3 und y = 0,97 setzt es bis nahe der Spitze in der linken Ecke.

    Jetzt müssen wir ein bisschen mehr Code, um unsere Kamera-Skript hinzuzufügen. Aktualisieren Sie das Skript mit Thesen Änderungen.
     Verwendung UnityEngine;
     using System.Collections;
    
     public class Pancam: MonoBehaviour {
    
    	 schweben ydir = 0f;
    	 öffentlichen Gameobject-Player;
    	 // Für unsere GUIText Objekt und unsere Punktzahl
    	 öffentliche GUIElement gui;
    	 schweben playerScore = 0;
    
    	 // Diese Funktion aktualisiert unserer guitext Objekt
    	 Leere OnGUI () {
    		 gui.guiText.text = "Ergebnis:" + ((int) (playerScore * 10)) ToString ();.
    	 }
    	 // Das ist generische Funktion können wir nennen den Schuss um einen Betrag zu erhöhen
    	 public void increaseScore (int betrag) {
    		 playerScore + = Betrag;
    	 }
    
    	 // Aktualisierung wird einmal pro Rahmen genannt
    	 Leere Update () {
    		 // Überprüfen, dass Spieler existiert und fahren Sie dann.  ansonsten eine Fehlermeldung erhalten, wenn wir Spieler stirbt
    		 if (Spieler) {
    
    			 //, Wenn Spieler die x-Position von -1 übergeben, dann fangen Sie an der Kamera nach vorne mit einem randomish Y-Position
    			 if (player.transform.position.x> -1) {
    
    				 // Jedes Ticken der Uhr aktualisieren unsere Punktzahl
    				 playerScore + = Time.deltaTime;
    				
    				 schweben randy = 0f;
    				 randy = Random.Range (0f, 100f);
    				 if (Randy <20) {
    					 ydir = ydir + .005f;
    				 } Else if (Randy> 20 && randy <40) {
    					 ydir = ydir - .005f;
    				 } Else if (Randy> 80) {
    					 ydir = 0f;
    				 }
    				 transform.position = new Vector3 (Transformieren.Position.X + 0.03f, transform.position.y + ydir, -10);
    			 }
    		 }
    	 }
     }
    
    

    Speichern Sie das Skript Pancam und zur Einheit.

    Wählen Sie die Hauptkamera wieder, und Sie werden sehen, dass eine neue Parameter in der Skriptkomponente im Inspector zur Verfügung. Ziehen Sie den Score GuiText Objekt auf die Parameter Gui.

    Versuchen Sie es erneut zu spielen, sollten Sie nun eine Partitur nach oben entwickelt.

Schritt 14: Bombs Away

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 23 Artikel anzeigen
    Es gibt keine wirkliche Gefahr, noch für unsere Helden. Wir werden das beheben. Lets make einige Comic-Bomben fallen vom Himmel und brechen die Linie.

    Erstellen Sie ein neues leeres Objekt Spiel, und nennen Sie sie zu bombardieren. In der Sprite-Ordner, suchen Sie die Bombe Sprite, öffnen Sie sie, und fügen Sie das erste Bild zu bombardieren. Passen Sie die Transformation Maßstab zu X = 0,5, Y = 0,5.

    Fügen Sie einen Kreis Collider 2D und ändern es Größe und -position, um gut auszusehen. Wir wollen, dass die Bomben zu fallen, so werden wir auch brauchen eine rigidbody 2D, fügen Sie diese Komponente als gut.

    Wir brauchen auch ein Animator, unsere bomb Staaten zu kontrollieren, so hinzufügen, dass auch. Deaktivieren Sie die Option Übernehmen Wurzel Bewegung und überprüfen Sie die Animate Physik-Box in der Inspector.

    Öffnen Sie das Animationsfenster, stellen Sie sicher, dass Sie immer noch Bomb_0 der Bombe noch ausgewählt. Fügen Sie eine Animation und nennen es bombidle, wird dies eine neue Standardstatus in unserer Animator erstellen. Verwenden Sie die ersten 3 Bilder des Sprites Blatt (Drag & Drop) und dann reduzieren Sie die Bildrate durch Fallen Probe auf etwa 20.

    Erstellen Sie eine weitere neue Clip, rufen Sie diese ein bombexplode und verwenden Sie die verbleibenden Rahmen der Bombe Sprite Blatt. Wieder, verringern Sie die Framerate auf etwa 20.

    Unten im Fenster Animator, Creat einen Übergang von bombidle zu bombexplode, lassen Sie die Bedingung für die Ausgangszeit und ändern Sie den Wert auf 5,00. Das bedeutet, unsere Bombe wird im Leerlauf (Sicherung leuchtet) für 5 Sekunden, bevor Schaltzustände zu explodieren zu bleiben.

    Erstellen Sie eine dritte Animation im Animationsfenster, nennen es bombdead und lassen Sie es frei. In der Animator, erstellen Sie einen Übergang von bombexplode zu bombdead.

    Erstellen Sie ein neues Skript namens Bombe im Skript-Ordner.

     Verwendung UnityEngine;
     using System.Collections;
    
     public class Bombe: MonoBehaviour {
    	 // Eine Halterung für unsere Animator
    	 Animator anim;
    	 // A public float für den Explosionsradius
    	 public float explodeRadius = 1f;
    	
    	 // Das für die Initialisierung verwenden
    	 void start () {
    		 anim = GetComponent <Animator> ();
    	 }
    	
    	 // Aktualisierung wird einmal pro Rahmen genannt
    	 Leere Update () {
    		 // Wenn wir fertig sind explodier
    		 if (anim.GetCurrentAnimatorStateInfo (0) .IsName ("bombdead")) {
    			 // Alle Objekte in einem Radius zu zerstören, wenn sie nicht getaggt Spieler oder Hand werden
    			 Collider2D [] = Physics2D.OverlapCircleAll Collider (transform.position, explodeRadius);
    			 foreach (Collider2D col in Collider) {
    				 if (col.tag! = "Player" && col.tag! = "Hand") {
    					 Destroy (col.collider2D.gameObject);
    					
    				 }
    			 }
    			 Destroy (this.gameObject);
    			
    		 }
    	 }
     }
    
    
    Schließlich ziehen Sie die Bombe script in Ihre bomb_0 Objekt.

    Eine kleine Sache, die ich fast vergessen, ist die Hand, als die Hand zu taggen. um dies zu tun, wählen Sie Ihre Hand Objekt in der Hierarchie-Fenster und dann unter Tag, wählen Sie Add-Tag. Erstellen Sie einen neuen Tag an element0 benannt Hand, dann mit der Hand Objekt ausgewählt, ändern Sie den Tag auf der Hand. Tragen Sie zum penciltip Objekt-Tag auf der Hand.

    Versuchen Sie, das Spiel, sollte die Bombe fallen, explodieren, und nehmen Sie die Navigationsleiste. (Abhängig natürlich, wo Sie ihn positioniert haben)

Schritt 15: Bomb Spawning

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 7 Artikel anzeigen
    Ziemlich schwer, um das Spiel jetzt zu spielen, was wir tun werden, ist einen Spawn-Objekt, um die Bomben zu laichen, sehr ähnlich wie die penciltip laicht die pencilline.

    Das erste, was wir brauchen, ist ein Prefab unserer Bombe. Navigieren Sie zu dem Fertig Ordner und erstellen Sie eine neue Fertig, nennen Sie es zu bombardieren. Ziehen Sie das Objekt in die Bombe Bombe Fertig. Löschen Sie die ursprüngliche Bomb Objekt in der Hierarchie, wenn Sie es als Prefab haben.

    Erstellen Sie eine neue Quad-Objekt Name es BombSpawn. Position es vor der Kamera zu überprüfen in Main Kameraansicht oder im Spielfenster.

    Create a new script in your script folder called BombSpawner, and give it the following code.

    using UnityEngine;
    using System.Collections;
    
    public class BombSpawner : MonoBehaviour {
    	// a public object array for which objects to spawn
    	public GameObject[] obj;
    	//min and max times for another spawn
    	public float spawnMin = 3f;
    	public float spawnMax = 2f;
    	
    	void Start () {
    		//start spawn 
    		Spawn ();
    	 }
    	
    	void Spawn(){
    		//get random number
    		float rand = Random.Range (0, 1000);
    		//if random number is greater than 700 make a bomb
    		if (rand > 700) {
    			Instantiate (obj [Random.Range (0, obj.GetLength (0))], transform.position, Quaternion.identity);
    		 }
    		//invoke spawn at random time interval between min and max
    		Invoke ("Spawn", Random.Range (spawnMin, spawnMax));
    	 }
    	
     }
    
    
    First make the BombSpawn object a child of the Main Camera by dragging it into the camera via the hierarchy window.
    Now drag the script onto the BombSpawn object in the Hierarchy window. Now with BombSpawn opened in the Inspector, drag the Bomb prefab to the little triangle labelled Obj in the script component.

    We have to add an if statement back in our Bomb script (from last step) to delay the bombs falling until after the player has started to walk on the line. A quick check in my scene shows the hand sitting at 7.something so I will delay the drops until the bombs are past 12.
    Here is the modified Bomb script.

    public class bomb : MonoBehaviour {
    	//a holder for our Animator
    	Animator anim;
    	//a public float for the explosion radius
    	public float explodeRadius = 1f;
    	
    	// Use this for initialization
    	void Start () {
    		anim = GetComponent <Animator> ();
    	 }
    	
    	// Update is called once per frame
    	void Update () {
    		//if this bomb is spawned after the spawner reaches a position past x = 12
    		if (transform.position.x > 12) {
    			this.gameObject.SetActive (true);
    		 }
    		//otherwise bomb no worky
    		else{
    			this.gameObject.SetActive (false);
    		 }
    		//if we are done exploding
    		if (anim.GetCurrentAnimatorStateInfo (0).IsName ("bombdead")) {
    			//destroy all the objects in a radius unless they are tagged Player or hand
    			Collider2D[] colliders = Physics2D.OverlapCircleAll (transform.position,explodeRadius);
    			foreach(Collider2D col in colliders){
    				if (col.tag != "Player" && col.tag != "hand"){
    					Destroy(col.collider2D.gameObject);
    					
    				 }
    			 }
    			Destroy(this.gameObject);
    			
    		 }
    	 }
     }
    
    
    Now Robot can jump on the line and walk a little bit before the bombs start falling...try it out. Still not very challenging. Let's duplicate the BombSpawn object!! Then just move it over a little bit and we have two bomb spawners, let's play.

Step 16: Platforms(or doodles)

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 15 Artikel anzeigen
    To generate the doodle platforms, we start by creating a few prefabs. Create a new folder in the Prefab folder and call it Doodles.

    Create 10 new prefabs named doodle1 though to doodle10.

    Create a new empty game object, no need to name it.

    Open the sprites folder and find the doodles sheet, open it and select the first doodle. Drag it into the empty game object in the hierarchy window.

    Add a box collider 2D to it in the inspector, then play with the scale and center to get it sitting nicely on the doodle. Remember, this is what Robot will be landing on.

    Open your Prefabs/Doodles folder with the empty prefabs in it, and then drag the new GameObject into the doodle1 prefab.

    Now, rather than repeating this entire process, just navigate back to the sprite folder, grab the next doodle, and drag it into the Sprite Renderer component of the Game Object, adjust the positioning of the collider and put it into the next doodle prefab.

    Repeat this for the remaining doodle prefabs. Once they are all recorded as prefabs, you can delete the GameObject we made to create them.

    Now Duplicate a BombSpawn object under our Main camera, and move it off screen to the right. Give it a new name in the Inspector, something like DoodleSpawn.

    Then drag each of the new prefabs into the Obj parameter of our script component. Drag the first into element 0 to replace the bomb, and the others to the little triangle beside Obj to add them to the list.

    Play with the min/max parameter in the script component to change how often they are generated. Duplicate the DoodleSpawn object and move it up if you want another set of levels.

    One thing I noticed while playing is that Robots max speed was too low, I increased it over here. Go to your Player object and adjust the maxSpeed variable in the Script component if you find the same issue.

Step 17: Bonus Point Pickups

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Show All 19 Items
    Making the Pickups is very similar to making the doodles. A few small differences. Start by creating a new folder in the Prefabs folder called Bonus, and populate it with 6 blank prefabs.

    We will need a script to handle adding the bonus points to the GUIText object, so in the scripts folder, create a new script called BonusPoints. Here is the script to enter in Monodevelop.

    using UnityEngine;
    using System.Collections;
    
    public class BonusPoints : MonoBehaviour {
    	//make a container for the heads up display
    	pancam hud;
    
    	void OnTriggerEnter2D (Collider2D col) {
    		if (col.tag == "Player") {
    			hud = GameObject.Find ("Main Camera").GetComponent<pancam>();
    			hud.increaseScore(10);
    			Destroy (this.gameObject);
    		 }
    		
    	 }
     }
    

    Now return to the scene and create a new empty GameObject. Find powerups in the sprites folder, and drag the first sprite into the new GameObject.

    Transform the scale to x=2,y=2 over in the inspector, then add a box collider 2D. This time we want to check the box marked Is Trigger.

    Now drag the BonusPoints script into powerups_0. Open the prefabs/bonus folder and drag the GameObject into the prefab.

    As in the previous step, just replace the Sprite Renderer Sprite for each prefab and save them.

    Once the six Bonus Prefabs are made, we can delete the GameObject that we used to construct them.

    To spawn our bonuses, we will just duplicate the DoodleSpawn object, rename it BonusSpawn, move it up a little bit and replace the object that it spawns.

Step 18: Game Over

  1. Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Machen Sie ein 2D-Videospiel mit Unity

    Alle 12 Artikel anzeigen
    The home stretch!! All we need now is for the player to die rather than a break in the code. That, and we'll need a second scene, to display that the game has ended and offer the chance to play again.

    Lets add this scene to the build before we start the new scene. In the File pulldown menu, select Build Settings.
    In the dialog box that opens up, click the Add Current button, and verify that the scene has a scene # of zero. Close the dialog box.

    Make sure you save your current scene and then select New Scene. Name the scene GameOver and put it in the Assets folder.

    Add a GUIText object from the GameObject pulldown menu. In the inspector, change Anchor to upper center and alignment to center. Also change the font size to 20 and the color to black.

    Back in the scene, drag the sticky note called notes_score to the scene and position it roughly center, use the Game window to see how it will look. Do the same with the Game Over sprite, just drop it where it looks good.

    Create a gameOver script in the script folder, like this one.

    using UnityEngine;
    using System.Collections;
    
    public class GameOver : MonoBehaviour {
    	int score = 0;
    	public GUIElement gui;
    	
    	// Use this for initialization
    	void Start () {
    		//get our score from playerprefs
    		score = PlayerPrefs.GetInt ("Score");
    		//multiply by 10 as we did on displayed score
    		score = score * 10;
    	 }
    	
    	void OnGUI(){
    		//set our text to our score
    		gui.guiText.text = score.ToString ();
    		//if retry button is pressed load scene 0 the game
    		if(GUI.Button(new Rect(Screen.width/2-50,Screen.height/2 +150,100,40),"Retry?")){
    			Application.LoadLevel(0);
    		 }
                   //and quit button
                   if(GUI.Button(new Rect(Screen.width/2-50,Screen.height/2 +200,100,40),"Quit")){
       Application.Quit();
      }
    	 }
    
     }
    

    Save it and drag it onto the Main Camera in our new scene.

    Almost all finished, we need to add a function to our camera script to pass the score forward, and we need to alter our destroyer script where we have the code break to send us to the GameOver scene.

    The new Camera script.

    using UnityEngine;
    using System.Collections;
    
    public class pancam : MonoBehaviour {
    
    	float ydir = 0f;
    	public GameObject player;
    	//for our GUIText object and our score
    	public GUIElement gui;
    	float playerScore = 0;
    
    	//this function updates our guitext object
    	void OnGUI(){
    		gui.guiText.text = "Score: " + ((int)(playerScore * 10)).ToString ();
    	 }
    	//this is generic function we can call to increase the score by an amount
    	public void increaseScore(int amount){
    		playerScore += amount;
    	 }
    	//Camera will be disabled when we load a level, set the score in playerprefs
    	void OnDisable(){
    		PlayerPrefs.SetInt ("Score",(int)(playerScore));
    	 }
    
    	// Update is called once per frame
    	void Update () {
    		//check that player exists and then proceed. otherwise we get an error when player dies
    		if (player) {
    
    			//if player has passed the x position of -1 then start moving camera forward with a randomish Y position
    			if (player.transform.position.x > -1) {
    
    				//update our score every tick of the clock
    				playerScore += Time.deltaTime;
    				
    				float randy = 0f;
    				randy = Random.Range (0f, 100f);
    				if (randy < 20) {
    					ydir = ydir + .005f;
    				} else if (randy > 20 && randy < 40) {
    					ydir = ydir - .005f;
    				} else if (randy > 80) {
    					ydir = 0f;
    				 }
    				transform.position = new Vector3 (transform.position.x + 0.03f, transform.position.y + ydir, -10);
    			 }
    		 }
    	 }
     }
    
    

    The fixed Destroyer script

    using UnityEngine;
    using System.Collections;
    
    public class Destroyer : MonoBehaviour {
    
    	
    	void OnTriggerEnter2D(Collider2D other){
    		//if the object that triggered the event is tagged player
    		if (other.tag == "Player") {
    			Application.LoadLevel(1);
    				 }
    
    		if (other.gameObject.transform.parent) {
    				Destroy (other.gameObject.transform.parent.gameObject);
    
    		} else {
    				Destroy (other.gameObject);		
    			 }
    	 }
    
     }
    
    

    Guess what? You just made a game! I did too!! woot for us!
    Ok, so it is not the best game in the world, but that is hardly the point is it. At least it wasn't for me. I was shocked at how simple it has all become, and I had to share. Go get making, I can't wait to play some new cool games!

Step 19: Files, etc

  1. i included this last step to make the scripts we just wrote together a little easier to access.
    So here are the scripts we just went through.

    Thanks so much for stopping by, I hope you enjoyed it as much as I did.
    Share and enjoy.

    Oh and......vote fjordcarver?