Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Mobile Development

Erstellen Sie ein Basketball-Freiwurfspiel mit Unity

by
Read Time:14 minsLanguages:

German (Deutsch) translation by Katharina Grigorovich-Nevolina (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Einführung

In diesem Tutorial erfahren Sie, wie Sie mit C# und Unity ein mobiles 3D-Spiel erstellen.  Das Ziel des Spiels ist es, so viele Punkte wie möglich zu erzielen.  Sie lernen die folgenden Aspekte der Unity-Spieleentwicklung kennen:

  • Einrichten eines 3D-Projekts in Unity
  • Implementierung von Tap-Steuerelementen
  • Integration von Physik
  • Prefabs erstellen

1. Erstellen Sie ein neues Unity-Projekt

Öffnen Sie Unity und wählen Sie im Menü Datei (File) die Option Neues Projekt (New Project), um den neuen Projektdialog zu öffnen.  Sagen Sie Unity, wo Sie das Projekt speichern möchten, und stellen Sie das Menü Standardeinstellungen (Set up defaults) für: auf 3D ein.


2. Setzen Sie Einstellungen

Im nächsten Schritt wird Ihnen die Benutzeroberfläche von Unity angezeigt.  Legen Sie das Projekt für die mobile Entwicklung fest, indem Sie im Menü Datei die Option Build-Einstellungen (Settings) auswählen und die gewünschte Plattform auswählen.  Ich habe Android für dieses Tutorial ausgewählt.


3. Geräte

Das erste, was wir tun müssen, nachdem wir die Plattform ausgewählt haben, auf die wir zielen, ist die Größe der Grafik, die wir im Spiel verwenden werden.  Ich habe für jede Plattform die wichtigsten Geräte aufgeführt und die Bildschirmauflösung und Pixeldichte des Geräts angegeben.

iOS

  • iPad: 1024px x 768px
  • iPad Retina: 2048px x 1536px
  • 3,5 "iPhone/iPod Touch: 320px x 480px
  • 3,5 "iPhone/iPod Retina: 960px x 640px
  • 4 "iPhone/iPod Touch: 1136px x 640px

Android

Da Android eine offene Plattform ist, gibt es viele verschiedene Geräte, Bildschirmauflösungen und Pixeldichten.  Einige der häufigsten sind unten aufgeführt.

  • Asus Nexus 7 Tablet: 800px x 1280px, 216ppi
  • Motorola Droid X: 854px x 480px, 228ppi
  • Samsung Galaxy S3: 720px x 1280px, 306ppi

Windows Phone

  • Nokia Lumia 520: 400px x 800px, 233ppi
  • Nokia Lumia 1520: 1080px x 1920px, 367ppi

Blackberry 

  • Blackberry Z10: 720px x 1280px, 355ppi

Erinnern Sie sich daran, dass der für dieses Lernprogramm verwendete Code für die Ausrichtung auf eine der oben genannten Plattformen verwendet werden kann.

4. Grafiken exportieren

Abhängig von den Zielgeräten müssen Sie das Bildmaterial für das Spiel möglicherweise auf die empfohlene Größe und Auflösung umstellen.  Sie können das in Ihrem bevorzugten Bildbearbeitungsprogramm machen.  Ich habe die Funktion Größe anpassen (Adjust Size) ... unter dem Menü Werkzeuge (Tools) in der OS X-Vorschauanwendung verwendet.


5. Unity-Benutzeroberfläche

Bevor Sie beginnen, stellen Sie sicher, dass Sie im Szenenfenster auf die 3D-Schaltfläche klicken.  Sie können auch die Auflösung ändern, die im Spielfenster angezeigt wird.


6. Spielschnittstelle

Die Schnittstelle unseres Spiels wird einfach sein.  Der obige Screenshot gibt Ihnen eine Vorstellung von dem Kunstwerk, die wir verwenden werden und wie die Oberfläche des Spiels aussehen wird.  Sie können die Grafik und zusätzliche Ressourcen in den Quelldateien dieses Tutorials finden.


7. Programmiersprache

Sie können eine der drei Programmiersprachen verwenden, wenn Sie Unity, C#, UnityScript, eine Variation von JavaScript und Boo verwenden.  Jede Programmiersprache hat ihre Vor- und Nachteile, und es liegt an Ihnen, zu entscheiden, welche Sie bevorzugen.  Meine persönliche Vorliebe geht an die C#-Programmiersprache, das ist die Sprache, die ich in diesem Tutorial verwenden werde.

Wenn Sie sich für eine andere Programmiersprache entscheiden, sollten Sie sich zum Beispiel das Referenz-Script von Unity ansehen.


8. Soundeffekte

Ich werde eine Reihe von Sounds verwenden, um das Hörerlebnis des Spiels zu verbessern.  Die in diesem Tutorial verwendeten Soundeffekte wurden von as3sfxr und Soungle bezogen.


9. 3D-Modelle

Um unser Spiel zu erstellen, müssen wir zuerst unsere 3D-Modelle bekommen.  Ich empfehle 3Docean für qualitativ hochwertige Modelle, Texturen und mehr, aber wenn Sie testen oder noch lernen, dann sind kostenlose Modelle ein guter Anfang.

Die Modelle in diesem Lernprogramm wurden aus SketchUp 3D Warehouse heruntergeladen, wo Sie eine gute Auswahl an Modellen aller Art finden können.

Da Unity das SketchUp-Dateiformat nicht erkennt, müssen wir SketchUp-Dateien in ein Dateiformat konvertieren, das von Unity importiert werden kann.  Laden Sie zunächst die kostenlose Version von SketchUp, SketchUp Make herunter.

Öffnen Sie Ihr 3D-Modell in SketchUp Make und wählen Sie Exportieren > 3D-Modell (Export > 3D Model) aus dem Menü Datei und wählen Sie Collada (*.dae) aus der Liste der Optionen.

Wählen Sie einen Namen, wählen Sie ein Verzeichnis und klicken Sie auf Exportieren.  Eine Datei und ein Ordner für das 3D-Modell werden erstellt.  Die Datei enthält die 3D-Objektdaten und den Ordner die Texturen, die vom Modell verwendet werden.  Sie können das Modell jetzt wie im nächsten Schritt erläutert in Unity importieren.


10. Importieren Sie Assets

Bevor wir mit der Codierung beginnen, müssen wir unsere Assets dem Unity-Projekt hinzufügen.  Sie können dies auf verschiedene Arten tun:

  • Wählen Sie im Menü Assets die Option Neues Asset importieren aus.
  • Fügen Sie die Elemente dem Ordner Assets Ihres Projekts hinzu.
  • Ziehen Sie die Elemente in das Projektfenster und legen Sie sie dort ab.

Nach Abschluss dieses Schritts sollten Sie die Assets im Ordner Assets Ihres Projekts im Projektfenster sehen.


11.  Erstellen Sie eine Szene

Wir sind bereit, die Szene unseres Spiels zu erstellen, indem wir Objekte in das Hierarchie- oder Szenenfenster ziehen.


12. 2D Hintergrund

Beginnen Sie mit dem Ziehen und Ablegen des Hintergrunds in das Hierarchiefenster.  Es sollte automatisch im Szenenfenster erscheinen.  Passen Sie die Transformationswerte im Inspektor an, wie im nächsten Screenshot gezeigt.


13 Reifen

Das Ziel des Spiels ist es, den Ball durch den Reifen zu werfen. Ziehen Sie es aus dem Bedienfeld Assets in die Szene und ändern Sie die Transformationseigenschaften wie im folgenden Screenshot gezeigt.


14 Licht

Wie Sie vielleicht bemerkt haben, ist der Basketballkorb ein bisschen zu dunkel.  Um das zu beheben, müssen wir unserer Szene ein Licht hinzufügen.  Gehen Sie zu GameObject > Create Other und wählen Sie Directional Light.  Das erzeugt ein Objekt, das einen Lichtstrahl erzeugt.  Ändern Sie seine Transformationswerte wie im nächsten Screenshot gezeigt, so dass es den Basketballkorb beleuchtet.


15.  Reifen Collider

Wenn der Basketballkorb richtig angezündet ist, ist es Zeit, einen Collider hinzuzufügen, damit der Ball nicht durchgeht, wenn er den weißen Bereich trifft.

Klicken Sie im Inspektorfenster auf die Schaltfläche Komponente hinzufügen, wählen Sie Physik > Box Collider und ändern Sie ihre Werte wie im nächsten Screenshot gezeigt.

Im Bereich Szene sehen Sie einen grünen Rahmen um den Basketballkorb, der den gerade hinzugefügten Box Collider darstellt.


16 Sprungkraft des Physik-Materials

Wenn wir einen Ball auf den Basketballkorb werfen würden, würde er vom Box Collider gestoppt werden, aber er würde aufhören, ohne zu prellen, wie man es in der realen Welt erwarten würde.  Um das zu beheben, brauchen wir ein Physik-Material.

Nachdem Sie im Menü Assets die Option Erstellen > Physikalisches Material (Create > Physics Material) ausgewählt haben, sollte diese im Bedienfeld Assets angezeigt werden.  Ich änderte den Namen in BounceMaterial.

Ändern Sie die Eigenschaften im Bereich Inspector so, dass sie mit denen im folgenden Screenshot übereinstimmen.

Als nächstes wählen Sie den Box Collider des Basketballkorbs und klicken Sie auf den kleinen Punkt rechts neben dem Material-Text. Es sollte ein Fenster erscheinen, wo Sie das Physikmaterial auswählen können.


17.  Korb Collider

Wir werden einen anderen Collider verwenden, um zu erkennen, wann der Ball den Reifen passiert.  Das sollte ein Trigger-Collider sein, um sicherzustellen, dass er die Kollision erkennt, ohne mit dem Physikkörper zu interagieren.

Erstellen Sie einen neuen Collider für den Rahmen, wie in Schritt 15 gezeigt, und aktualisieren Sie die Werte wie im nächsten Screenshot gezeigt.

Dadurch wird der Collider unterhalb des Rings platziert, wo der Ball nicht nach oben zurückkehren kann, was bedeutet, dass ein Korb hergestellt wurde.  Achten Sie darauf, das Kontrollkorb ist Trigger aktiviert, um es als Trigger-Collider zu markieren.


18. Ring Mesh Collider

Zeit, um dem Ring selbst einen Collider hinzuzufügen.  Da wir den Ball brauchen, um durch die Mitte des Rings zu gehen, können wir keine Sphäre oder Box Collider haben, stattdessen verwenden wir einen Mesh Collider.

Ein Mesh Collider ermöglicht es uns, die Form des 3D-Objekts als Collider zu verwenden.  Wie die Dokumentation besagt, erstellt der Mesh Collider seine Kollisionsdarstellung aus dem Gitter, das an das GameObject angehängt ist.

Wählen Sie den Rahmen im Hierarchiebedienfeld aus, klicken Sie auf das Dreieck auf der linken Seite, um seine Hierarchie zu erweitern, erweitern Sie group_17, und wählen Sie das Element mit dem Namen Ring aus.

Fügen Sie einen Collider hinzu, wie wir in Schritt 15 gesehen haben, aber stellen Sie sicher, dass Sie Mesh Collider auswählen.  Unity erkennt dann automatisch die Form des Modells und erstellt einen Collider für das Modell.


19.  Reifen Sound

Um einen Ton zu spielen, wenn der Ball den Reifen trifft, müssen wir ihn zuerst befestigen.  Wählen Sie es in der Hierarchie- oder Szenenansicht aus, klicken Sie im Inspektorfenster auf die Schaltfläche Komponente hinzufügen (Add Component) und wählen Sie Audio-Quelle in der Audio-Sektion.

Deaktivieren Sie Bei Erwachung wiedergeben (Play on Awake) und klicken Sie auf den kleinen Punkt rechts unter dem Zahnradsymbol, um den gewünschten Sound auszuwählen.


20.  Ball

Konzentrieren wir uns jetzt auf den Basketball.  Ziehen Sie es aus dem Ordner Assets und platzieren Sie es in der Szene.  Machen Ihr keine Sorgen über die Position des Balls, denn wir werden es später in ein Prefab umwandeln.

Damit der Ball erkennt, wenn er auf den Reifen trifft, müssen wir eine Komponente Sphere Collider hinzufügen, um genau zu sein.  Wählen Sie den Ball in der Szene aus, öffnen Sie das Inspector-Fenster und klicken Sie auf Komponente hinzufügen.  Wählen Sie aus der Liste der Komponenten Sphere Collider aus dem Bereich Physik und aktualisieren Sie die Eigenschaften wie unten gezeigt.


21.  Ball RigidBody

Um eine Kollision mit dem Basketball zu erkennen, muss mindestens eines der kollidierenden Objekte mit einer RigidBody-Komponente verbunden sein.  Um dem Ball eine Kugel hinzuzufügen, wählen Sie im Bereich Inspector die Option Komponente hinzufügen (Add Component) und wählen Sie Physik > RigidBody.

Behalten Sie die Einstellungen bei ihren Standardeinstellungen bei und ziehen Sie den Ball aus dem Hierarchiebedienfeld in das Bedienfeld Assests, um ihn in ein Prefab zu konvertieren.


22. Reifen Sprite

Um die bereits vom Spieler gemachten Körbe darzustellen, verwenden wir eine 2D-Version des Basketballkorbs.  Ziehen Sie es aus dem Bedienfeld Assets und platzieren Sie es wie unten gezeigt in der Szene.


23.  Ergebnistext

Unterhalb des 2D-Rahmens zeigen wir die Anzahl der Körbe an, die der Spieler bisher erzielt hat.  Wählen Sie GameObject > Create Other > GUI Text, um ein Textobjekt zu erstellen, platzieren Sie es am unteren Rand des Basketballkorbs und ändern Sie den Text im Hierarchiebedienfeld in 0.

Sie können eine benutzerdefinierte Schriftart einbetten, indem Sie sie in den Ordner Assets importieren und die Eigenschaft Schrift des Texts im Bereich Inspector ändern.

24.  Kraftmeter

Die Kraftmeter ist ein Balken, der die Kraft zeigt, mit der der Ball abgeschossen wird.  Das wird dem Spiel einen weiteren Schwierigkeitsgrad hinzufügen.  Ziehen Sie die Sprites für die Kraftmeter aus dem Bedienfeld Assets in die Szene und positionieren Sie sie wie im folgenden Screenshot gezeigt.


25.  Ball Sprite

Wir fügen der Anzeige auch einen Indikator hinzu, der anzeigt, wie viele Schüsse der Spieler noch hat. Um diesen Schritt abzuschließen, folgen Sie den gleichen Schritten, die wir verwendet haben, um die aktuelle Punktzahl des Spielers anzuzeigen.


26.  Korb-Skript

Es ist endlich Zeit, etwas Code zu schreiben.  Das erste Skript, das wir erstellen, ist das Basket-Skript, das überprüft, ob der Ball den Ring passiert oder auf das Board trifft.

Wählen Sie den Rahmen und klicken Sie im Inspektorfenster auf die Schaltfläche Komponente hinzufügen.  Wählen Sie New Script und nennen Sie es Basket.  Vergessen Sie nicht, die Sprache in C# zu ändern. Öffnen Sie die neu erstellte Datei und fügen Sie das folgende Code-Snippet hinzu.

In diesem Skript legen wir zwei öffentliche Variablen fest, die Objekte in der Szene und im Ordner Assets darstellen.  Gehen Sie zurück zum Editor und klicken Sie auf den kleinen Punkt rechts neben den Variablen, um die in den Kommentaren beschriebenen Werte auszuwählen.

Wir spielen ein Geräusch, wenn der Ball den Basketballkorb trifft und prüfen, ob der Ball durch den Ring geht.  Die Parse-Methode konvertiert den Text aus dem GUI-Text-Spielobjekt in eine Zahl, sodass wir die Punktzahl erhöhen und dann mithilfe von toString erneut als Text festlegen können.  Am Ende spielen wir den basket-Ton.

27.  Schoss (Shoot) Skript

Die Shoot-Klasse übernimmt den Rest der Spielinteraktion.  Wir werden den Inhalt des Skripts abbrechen, damit er leichter verdaut werden kann.

Beginnen Sie mit der Auswahl der Kamera und klicken Sie im Inspektorfenster auf die Schaltfläche Komponente hinzufügen.  Wählen Sie Neues Skript und nennen Sie es Shoot.

28.  Variablen

Im nächsten Code-Snippet habe ich die Variablen aufgelistet, die wir verwenden werden.  Lesen Sie die Kommentare im Code-Snippet zur Erläuterung.


29.  Erhöhen Sie die Schwerkraft

Als Nächstes erstellen wir die Start-Methode, in der wir die Schwerkraft auf -20 setzen, um den Ball schneller fallen zu lassen.


30.  Force Meter Verhalten

Um Interaktionen mit der Physik-Engine zu handhaben, implementieren wir die FixedUpdate-Methode.  Der Unterschied zwischen dieser Methode und der regulären Update-Methode besteht darin, dass FixedUpdate basierend auf physikalischen Schritten statt auf jedem Frame ausgeführt wird, was beispielsweise Probleme verursachen kann, wenn das Gerät aufgrund eines Speichermangels langsam ist.

In der FixedUpdate-Methode verschieben wir den Pfeil des Kraftmessgeräts mithilfe der right Variablen, um zu erkennen, wann die Bewegung des Pfeils umgekehrt werden soll.

31.  Ball schießen

Der Basketball wird geworfen, wenn der Spieler auf den Bildschirm tippt.  Wenn der Bildschirm angetippt wird, prüfen wir zuerst, ob bereits ein Ball in der Luft ist und ob der Spieler Schüsse zur Verfügung hat.  Wenn diese Voraussetzungen erfüllt sind, aktualisieren wir die Werte, erstellen eine neue Instanz des Balls und werfen sie mithilfe der addForce-Methode aus.


32.  Entfernen des Balls

Im folgenden Codeblock testen wir, ob der Ball den Boden erreicht und wann er entfernt wird.  Wir bereiten uns auch auf den nächsten Wurf vor, indem wir die Variablen zurücksetzen.


33.  Überprüfen Sie verfügbare Schüsse

Nachdem wir den Ball entfernt haben, überprüfen wir, ob der Spieler noch Schüsse hat.  Wenn das nicht der Fall ist, beenden wir das Spiel und rufen restart auf.

34.  restart

Die restart-Methode wird zwei Sekunden nach dem Ende des Spielzugs ausgeführt, wobei das Spiel durch Aufruf von LoadLevel neu gestartet wird.


35.  Testen

Es ist Zeit, das Spiel zu testen.  Drücken Sie Command-P, um das Spiel in Unity zu spielen.  Wenn alles wie erwartet funktioniert, sind Sie bereit für die letzten Schritte.


36.  Spielereinstellungen

Wenn Sie mit Ihrem Spiel zufrieden sind, wählen Sie im Menü Datei die Option Build-Einstellungen und klicken Sie auf die Schaltfläche Player-Einstellungen.  Dadurch sollten die Player-Einstellungen im Inspektorfenster angezeigt werden, in dem Sie die Parameter für Ihre Anwendung festlegen können.

Die Einstellungen sind Anwendungen und umfassen den Ersteller oder das Unternehmen, die Anwendungsauflösung und den Anzeigemodus, den Rendermodus, die Gerätekompatibilität usw.  Die Einstellungen hängen von der Plattform und den Geräten ab, auf die Ihre Anwendung im Kopf ausgerichtet ist.


37. Symbole und Splash-Bilder

Mit der Grafik, die Sie zuvor erstellt haben, können Sie jetzt ein schönes Symbol und ein Splash-Bild für Ihr Spiel erstellen.  Unity zeigt Ihnen die erforderlichen Größen an, die von der Plattform abhängen, für die Sie erstellen.

38.  Setzen und spielen


Sobald Ihr Projekt richtig konfiguriert ist, ist es an der Zeit, die Build-Einstellungen erneut aufzurufen und auf die Schaltfläche Build zu klicken.  Das ist alles, was Sie brauchen, um Ihr Spiel zum Testen und/oder Verteilen zu setzen.

Schlussfolgerung

In diesem Tutorial lernten wir 3D-Modelle, Mesh-Collider, Physikmaterialien, Kollisionserkennung und andere Aspekte der Unity-Spieleentwicklung kennen.  Ich ermutige Sie, mit dem Ergebnis zu experimentieren und das Spiel so anzupassen, dass es zu Ihren eigenen passt.  Ich hoffe, hat Ihr dieses Tutorial gefallen und es war hilfreich.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.