Spiele

Unity3D-Tutorial

Unity3D-Tutorial

Einführung in Unity 3D

Unity 3D ist eine leistungsstarke Engine für die Spieleentwicklung. Es ist plattformübergreifend, das heißt, Sie können Spiele für Handy, Web, Desktop und Konsole erstellen, insgesamt etwa 30 Plattformen. Unity 3D hat viele aufregende Funktionen, von denen einige im Folgenden aufgeführt sind:

Unity-Schnittstellen

Lassen Sie uns die konfigurierbaren Schnittstellen des Unity-Editors erkunden.  Es besteht aus angezapften Fenstern, die Sie je nach Bedarf neu anordnen können.  Sehen wir uns die Standardfenstereinstellungen an. Hier ist das Bild wie es aussieht

Hierarchiefenster

Das Hierarchiefenster repräsentiert jedes Objekt in der Szene. Es zeigt, wie Objekte in der Szene miteinander verknüpft sind, sodass diese beiden Fenster miteinander verbunden sind. Im Hierarchiefenster gibt es eine Dropdown-Liste namens Erstellen. Sie können ganz einfach ein leeres Objekt, 3D-Objekte, 2D-Objekte, Licht-, Audio-, Video-, Partikelsystem- und Kameraobjekte erstellen. Das Hierarchiefenster ist unten dargestellt. 'Untitled' ist der Name der Szene. Sie können es nach Belieben umbenennen. Sie können ein Dropdown-Symbol ganz rechts neben unbenannt (Szenenname) sehen. Wenn Sie auf dieses Dropdown-Menü klicken, sehen Sie verschiedene Optionen für Szene speichern und Neue Szene hinzufügen.

Szenenfenster

Im Szenenfenster erstellen Sie Ihre Szene. Hier können Sie mit Ihren Spielobjekten und Modellen interagieren. Sie können Ihre Szenenobjekte in der Größe ändern, umformen und neu positionieren. Dies ist das Fenster, in dem Sie mit der Arbeit mit Unity beginnen. Die Szenenansicht kann je nach Einstellung Ihres Projekts 2D oder 3D sein. Hier ist ein Screenshot, wie das Szenenfenster aussieht:

Im Szenenfenster sehen Sie eine weitere Registerkarte mit der Bezeichnung Schattiert, Hier können Sie auswählen, welche Art von Ansicht Sie entweder schattiert oder als Drahtmodell haben möchten. Es hat viele andere Optionen wie Miscellaneous, Global Illumination, Real time GI, Baked GI und viele andere. Sie können 2D oder 3D anzeigen, indem Sie die Schaltfläche neben dem Schattiert Dropdown-Liste. Als nächstes kommt die Umschalttaste für die Szenenbeleuchtung. Ähnlich eine Umschalttaste für Szenen-Audio. Als nächstes ist eine Dropdown-Liste zum Aktivieren von Skybox, Nebel, animiertem Material und Bildeffekten.

Spielfenster

Das Spielfenster stellt Ihr letztes, veröffentlichtes Spiel im Spielmodus dar. Es wird von den Kameras gerendert, die Sie in Ihrem Spiel verwendet haben. Im Spielfenster sehen Sie eine weitere Symbolleiste, wie unten im Screenshot gezeigt:

Display 1 zeigt die in Ihrer Spielszene vorhandene Kamera an. Standardmäßig ist es eingestellt auf Anzeige 1 für Hauptkamera. Wenn Sie mehrere Kameras haben und wechseln möchten, können Sie aus der Dropdown-Liste auswählen. Daneben sehen Sie ein Dropdown-Menü für Seitenverhältnisse. Sie können entsprechend dem Bildschirm Ihres Zielgeräts auswählen select. Als nächstes sehen Sie a Skalierungsschieberegler heranzoomen. Scrollen Sie nach rechts und untersuchen Sie im Wiedergabemodus weitere Details Ihrer Szene. Weiter ist der Button für Beim Spielen maximieren, Wenn Sie darauf klicken, ist die Größe des Spielfensters im Spielmodus maximal. Ton stummschalten Toggle wird zum Stummschalten/Aufheben der Stummschaltung verwendet. Statistiken zeigt Rendering-Statistiken zu Audio und Grafik Ihres Spiels an.

Fenster Projekt-Assets

Wie der Name schon sagt, enthält das Asset-Fenster alle Assets Ihres Projekts, die Sie verwenden können. Wenn Sie etwas Neues importieren, wird es im Projekt-Assets-Fenster angezeigt. Das Projekt-Asset-Fenster besteht aus zwei Teilen, dem linken und dem rechten Fenster, wie im folgenden Screenshot gezeigt:

Der linke Bereich zeigt die hierarchische Struktur der Assets des Projekts.  Wenn Sie auf einen Ordner klicken, werden die Details im rechten Bereich angezeigt. Zum Beispiel in der angegebenen Abbildung Fertigteile Ordner wird im linken Bereich angeklickt, sodass seine Details im rechten Bereich angezeigt werden, da er zwei Spielobjekte enthält. Im linken Bereich sehen Sie a Favoriten Abschnitt, in den Sie Elemente ziehen können, die Sie sehr häufig verwenden möchten, um Zeitverschwendung bei der Suche zu vermeiden. Darüber sieht man a Erstellen Dropdown, mit dem Sie ein C#-Skript, einen Ordner, einen Shader, eine GUI-Skin, eine Szene, ein Prefab, ein Material und vieles mehr erstellen können.

Konsolenfenster

Das Konsolenfenster ist der Ort, an dem Sie Ihre Fehler, Warnungen und Nachrichten sehen können. Sie können sie anpassen, indem Sie auf ihre Umschaltflächen klicken. Es ermöglicht Ihnen auch, alle Fehler, Warnungen und Meldungen zu löschen. Sie können Fehler für eine bestimmte Zeit pausieren. Hier sehen Sie in der folgenden Abbildung

Das Dropdown-Symbol ganz oben rechts bietet Optionen für das Editor-Protokoll und die Stack-Trace-Protokollierung.

Inspektorfenster

Das Inspektorfenster ist eines der interessantesten und nützlichsten Fenster des Editors. Hier können Sie alle Eigenschaften des ausgewählten Spielobjekts bearbeiten. Jedes Spielobjekt hat seinen eigenen Typ, sodass seine Eigenschaften unterschiedlich sind und das Inspektorfenster variieren kann can. Assets, Skripte und Spielobjekte unterscheiden sich alle in ihren Eigenschaften. Sehen wir uns die Eigenschaften eines Würfels im Inspektorfenster an. Hier ist das Bild:

Sie können Ihr Spielobjekt umbenennen, indem Sie einfach auf den vorherigen Namen klicken und einen neuen eingeben. Als nächstes sehen Sie den Transformationsbereich, in dem Sie Position, Drehung und Skalierung Ihres ausgewählten Spielobjekts anpassen können. Im letzten sehen Sie einen Button-Namen als Komponente hinzufügen, Klicken Sie darauf, um Ihrem Spielobjekt neue Komponenten hinzuzufügen. Wenn Sie beispielsweise ein Skript anhängen möchten, klicken Sie einfach auf Komponente hinzufügen und geben Sie Ihren Skriptnamen ein.

Werkzeugleiste

Zuletzt ist die Registerkarte in der Symbolleiste, sie hat viele nützliche Funktionen. Es enthält einige grundlegende Werkzeuge zum Bearbeiten der Szenenansicht und der Objekte and. In der Mitte befinden sich Tasten für Play, Pause und Step Control. Die nächsten beiden Schaltflächen zeigen Ihre Unity-Cloud und Ihr Unity-Konto. Hier ist die Abbildung, wie es aussieht:

Erste Schritte mit Unity

Beginnen wir mit der Erstellung eines neuen Projekts in Unity, denn es ist an der Zeit, mit dem Gelernten zu spielen. Doppelklicken Sie auf das Unity-Symbol, das folgende Fenster wird angezeigt:

Eingeben Projektname, Wählen Sie einen Arbeitsplatz Ort und wählen Sie dann den Typ Ihres Projekts aus, entweder 2D oder 3D. Klicke auf Projekt erstellen.

Standardmäßig sehen Sie eine unbenannte Szene mit einer Hauptkamera und gerichtetem Licht in der Szene. Beginnen wir mit der Schaffung einer Umgebung.

Gebäudeumgebung

Erstellen Sie zunächst eine Ebene, indem Sie auf klicken Erstellen -> 3D-Objekt und dann auswählen Flugzeug. Alternativ können Sie es erstellen, indem Sie auf . klicken Spielobjekt -> Spielobjekt und dann auswählen Flugzeug. Gehe zum Hierarchiefenster und klicke auf das Flugzeugspielobjekt. Gehen Sie nun zum Inspektorfenster und benennen Sie es um in Boden. Passen Sie nun die Transformationswerte so an, dass diese Ebene wie eine gerade Straße aussieht. Skalieren Sie einfach X auf 6 und Z auf 50. Hier ist das Bild wie es aussieht

Laden Sie nun eine Straßentextur herunter und wenden Sie sie auf das Bodenobjekt an. Erstellen Sie einen Ordnernamen als Textur. Ziehen Sie die heruntergeladene Straßentextur in den Ordner von Texture. Wählen Sie nun Boden und ziehe die Straßentextur in die Szenenansicht. Hier ist das Bild wie es aussieht

Dies ist die Textur, die ich heruntergeladen habe

Nachdem Sie die Textur auf den Boden aufgetragen haben, klicken Sie auf Boden und legen Sie die Kacheln im Inspektorfenster fest. So habe ich es eingestellt.

Nachdem Sie nun ein Straßenmodell erstellt haben, erstellen wir ein Kugelmodell in Einheit.

Gehe zu Erstellen -> 3D-Objekt und dann auswählen Kugel, Sie sehen ein Kugelobjekt im Szenenfenster. Wählen Sie es aus und gehen Sie zum Inspektorfenster, um es umzubenennen in Ball. Passen Sie nun die Transformationswerte entsprechend an. Skalieren Sie es einfach entlang aller drei Achsen auf 5 und positionieren Sie es in der Mitte der Straße. So sieht es aus

Erstellen Sie nun einen Zaun oder eine Mauer um die Straße.

Gehe zu Erstellen -> 3D-Objekt und dann auswählen Würfel. Wählen Sie es aus und benennen Sie es um in Wand1. Gehen Sie zum Inspektorfenster und legen Sie die Transformationswerte so fest, dass es wie eine Mauer um die Straße aussieht. So sieht es aus:

Siehe diese Transformationswerte für Wand1. Skala Y auf 6 und Z auf 500. Passen Sie dann seine Position so an, dass es an den Straßenecken ankommt.

Suchen Sie nun nach einer Wandtextur, laden Sie sie herunter und kopieren Sie sie in die Textur Ordner in Assets. Wandtextur an die Wand im Szenenfenster ziehen. Passen Sie die Bodenbearbeitung so an, dass sie schön und glatt aussieht. Ich habe die Kachelung als X auf 50 und Y auf 1 angepasst.5. Nach dem Anpassen der Fliesen sieht es so aus

Dies ist die Textur, die ich für die Wand verwendet habe

Wir haben eine Mauer für eine Straßenseite geschaffen. Mache das gleiche jetzt auch für die andere Straßenseite. Anstatt den ganzen Prozess zu durchlaufen, können wir einfach kopieren Wand1 und benenne es um in Wand2.

Wählen Wand1 im Hierarchiefenster und dann Rechtsklick und dann auswählen Duplikat Möglichkeit. Es wird ein weiteres Spielobjekt mit derselben Größe und denselben Transformationswerten erstellt. Klicke auf Wand1(1) und benenne es um in Wand2. Passen Sie nun die Position so an, dass es zur anderen Straßenecke kommt.

Sehen Sie das folgende Bild, wie cool es aussieht

Meine Positionswerte für Wall2 sind X bis -29.6 Jahre bis 2.6 und Z bis 2.6.

Erstellen Sie nun ein Material für Ball. Gehen Sie zum Projektfenster und erstellen Sie einen Ordner, indem Sie mit der rechten Maustaste auf die Maus klicken und dann auswählen Mappe. Nennen Sie es als Materialien. Klicken Sie erneut mit der rechten Maustaste und erstellen Sie ein Material. Nennen Sie es als roter Ball. Wählen Sie im Inspektorfenster die Farbe des Materials. Gehe zu Hauptkarten und wählen Sie Albedo Farbe auf Rot. Erhöhen Sie die metallische Textur, indem Sie die Leiste nach rechts scrollen. Ziehen Sie dieses Material auf die Ball in der Szenenansicht. So sieht es aus

So sieht Material aus:

Damit sind wir mit unserer Umgebungsentwicklung fertig. Jetzt ist es an der Zeit, etwas zu codieren. Dafür müssen wir ein Skript erstellen.

Skripterstellung in Unity

Um eigene Gameplay-Features zu implementieren und das Verhalten des Spiels zu steuern, bietet Unity als Skripting-Mechanismus. Sie können Ihr eigenes Skript für die gewünschte Ausgabe des Spiels schreiben. Mit diesen Skripten können Sie Spielereignisse auslösen, die Eigenschaften von Komponenten ändern und auf Benutzereingaben reagieren. Grundsätzlich unterstützt Unity zwei verschiedene Programmiersprachen für Skriptzwecke, eine ist C# und eine andere ist JavaScript. Außer diesen beiden Sprachen viele andere .NET-Sprachen können auch mit Unity verwendet werden. Skripte sind in Unity als Verhaltenskomponente bekannt.

Skript erstellen

Beginnen wir mit der Erstellung eines Unity-Skripts. Gehen Sie dazu in das Assets-Fenster und erstellen Sie einen neuen Ordner namens Skripte (Sie können das Erstellen neuer Ordner für jeden neuen Asset-Typ überspringen, aber es ist eine gute Praxis, die Dinge organisiert zu halten). So sieht mein Asset-Fenster jetzt aus:

Öffne jetzt die Skripte Ordner, Rechtsklick, dann gehe zu Erstellen und wählen Sie C# Skript. Skript umbenennen in Bewegung. Wir erstellen dieses Skript, um den Ball auf der Straße zu bewegen und zu rollen. Im Moment ist der Ball stationär, tut nichts, lasst uns etwas Bewegung darin erzeugen.

Doppelklicken Sie auf das Bewegungsskript, das in Mono Develop geöffnet wird. Wenn Ihr Skript ein Monoverhalten ist, sehen Sie einen vorgefertigten Code wie diesen

mit System.Sammlungen; mit System.Kollektionen.Generisch; mit UnityEngine; public class MovementScript : MonoBehaviour  // Benutze dies für die Initialisierung void Start ()   // Update wird einmal pro Frame aufgerufen void Update ()    

Sie sehen zwei Funktionen Start() und Update().

Start(): Startfunktion wird zum Initialisieren von Variablen und Objekten verwendet. Es wird nur einmal aufgerufen, wenn das Skript kurz vor dem Aufruf anderer Update-Funktionen aktiviert ist.

Aktualisieren(): Es ist eine Mono-Verhaltensfunktion, sie wird einmal in jedem Frame aufgerufen.

Abgesehen von diesen beiden gibt es viele andere Mono-Verhaltensfunktionen, z. B. wake(), fixedUpdate(), lateUpdate() usw.

Um den Ball auf der Straße zu bewegen, muss man ihn zunächst zu einem starren Körper machen (es ist ein idealer Festkörper, bei dem die Verformung vernachlässigt wird). Wählen Ball im Hierarchiefenster und klicken Sie auf Komponente hinzufügen Schaltfläche im Inspektorfenster. Geben Sie Starrkörper ein und drücken Sie Eingeben. Ein starrer Körper wird an der Ball. Gehen Sie nun zum Skript und erstellen Sie eine private Variable vom Typ Starrer Körper. Weisen Sie nun dieser Variablen, die Sie gerade im Skript erstellt haben, den starren Körper des Balls zu.

privater Starrkörper rb; rb = GetComponent (); 

Schreiben Sie nun einen Code für die Bewegung dieses starren Körpers. Was ist die Idee?? Ball sollte sich bewegen, wenn ich die Pfeiltasten der Tastatur drücke. Es sollte sich vorwärts bewegen, wenn die Aufwärtstaste gedrückt wird, rückwärts, wenn die Abwärtstaste gedrückt wird usw.

Also die Eingabe, die von der Tastatur kommt, wie soll ich diese Eingabe erhalten?? Die Input-Klasse von Unity hat einen Funktionsnamen GetAxis(), um den Wert der virtuellen Achse zurückzugeben, die durch den Achsennamen identifiziert wird. Erstellen Sie zwei Variablen, eine für die x-Achse und eine für die y-Achsen-Eingabe. So soll es sein

float moveHorizontal = Eingabe.GetAxis ("Horizontal"); 

Erstellen Sie nun eine Vector3-Variable, um Bewegungswerte zu erhalten.

Vector3 Bewegung = neuer Vector3 (moveHorizontal, 0.0f,moveVertikel ); 

Der erste Parameter ist der Wert der x-Achse, der zweite der Wert der y-Achse und der dritte der Wert der z-Achse. Da sich der Ball nicht in Richtung der y-Achse bewegt, weisen Sie ihm Null zu. Fügen Sie diese Bewegung schließlich zum Starrkörper hinzu und multiplizieren Sie sie mit einer konstanten Zahl für die Geschwindigkeit oder erstellen Sie eine andere Variable für die Geschwindigkeit. Siehe den vollständigen Code unten

mit System.Sammlungen; mit System.Kollektionen.Generisch; mit UnityEngine; Public-Class-Bewegung: MonoBehaviour  Public-Float-Geschwindigkeit; privater Starrkörper rb; // Verwenden Sie dies für die Initialisierung void Start ()  rb = GetComponent ();  // Fixed Update wird nach einer festen Anzahl von Frames aufgerufen void FixedUpdate ()  float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertikel = Eingabe.GetAxis("Horizontal"); Vector3 Bewegung = neuer Vector3 (-1*moveHorizontal, 0.0f,-1*moveVertikel ); rb.AddForce (Bewegung * Geschwindigkeit);   

Da Geschwindigkeit eine öffentliche Variable ist, können Sie im Inspektorfenster einen Wert zuweisen. Hängen Sie dieses Skript an den Ball, indem Sie es in das Inspektorfenster ziehen oder drücken Sie Komponente hinzufügen Taste. Drücken Sie die Play-Taste und testen Sie Ihre Codierung, entweder der Ball bewegt sich oder nicht.

Kamera einstellen

Das Letzte, was Sie bemerken werden, ist, wenn Sie die Vorwärtstaste drücken und der Ball beginnt, sich zu bewegen, geht er aus der Kamera, da die Kamera stationär ist. Was sollen wir machen? Wir sollten auch die Kamera bewegen? Ja es ist das einfachste. Machen Sie die Kamera zum Kind des Balls, indem Sie die Hauptkamera auf den Ball ziehen.

Fazit

Dies war ein grundlegendes Einführungs-Tutorial, in dem Sie viele interessante Funktionen, Umgebungserstellung und Skripterstellung in Unity kennengelernt haben. Zögern Sie nicht, erstellen Sie noch heute Ihr erstes Spiel mit Unity und genießen Sie es!

So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...
OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...