So erstellen Sie ein Hauptmenü in Unity
In diesem Instructable erkläre ich, wie Sie ein Startmenü für ein Spiel in Unity erstellen, einer 3D-Spieledesign-Software, die kostenlos heruntergeladen werden kann. Dies ist ein einfaches Menü, aber die Konzepte können leicht auf komplexere Hauptmenüs angewendet werden.
Das Menü enthält:
Spieltitel, Startschaltfläche, Beendigungsschaltfläche mit benutzerdefinierten Schriftarten.
Die Schaltfläche zum Starten und Beenden ändert die Farbe, wenn Sie den Mauszeiger darüber halten.
Kundenspezifischer Hintergrund.
Schritt 1: Erstellen Sie ein Flugzeug und positionieren Sie es vor der Kamera

Öffnen Sie Unity und speichern Sie die Szene als Hauptmenü.
Klicken Sie im Hierarchiefenster auf Erstellen - Ebene. Benennen Sie es in "Hintergrund" um.
Drehen Sie die Hauptkamera um 90 Grad nach unten und ändern Sie ihre Projektion von Perspektive zu Orthographisch.
Stellen Sie die Transformation der Kamera so ein, dass sie 8 bis 10 Einheiten über dem Menü liegt und direkt nach unten zeigt.
Skalieren Sie den Hintergrund der Ebene so, dass er genau zur Kameravorschau passt.
Wenn Sie fertig sind, sollte es ähnlich wie im obigen Bild aussehen.
Schritt 2: Zünden Sie es an

Lichter hinzufügen. Wählen Sie dazu im Hierarchiefenster die Option Erstellen und klicken Sie auf Richtungslicht.
Es spielt keine Rolle, wo sich im 3D-Raum ein gerichtetes Licht befindet. es wird die gleiche Beleuchtung liefern, egal was passiert.
Erhöhen Sie daher nach dem Anpassen der Lichtrichtung, um auf den Hintergrund zu scheinen, das Licht um etwa 20 Einheiten in Y-Richtung, um Ihr Sichtfeld in der Szenenansicht klar zu halten.
Ich habe das Licht so eingestellt, dass es eine Transformation der Position (0, 20, 0) und der Drehung (60, 0, -20) aufweist.
Ich habe auch die Intensität auf 0, 4 geändert.
Sehen Sie sich das Bild noch einmal an, wie es aussehen soll, wenn Sie den Schritt abgeschlossen haben.
Schritt 3: Fügen Sie eine Textur hinzu

Unser Hintergrund sieht momentan eher schlicht aus, aber wir können ihn leicht genug aufpeppen. Nehmen Sie einfach eine Digitalkamera / ein Smartphone und machen Sie ein Foto von etwas Bequemem und Interessantem wie Boden, Decke, Wänden usw. und laden Sie es auf Ihren Computer hoch.
Erstellen Sie in Ihrem Assets-Ordner einen neuen Ordner mit dem Namen Textures für das Unity-Projekt, an dem Sie arbeiten. Klicken Sie mit der rechten Maustaste auf den Ordner im Projektfenster in Unity und wählen Sie "Im Explorer anzeigen". Kopieren Sie das aufgenommene Bild und fügen Sie es in den Ordner "Texturen" ein.
Klicken Sie bei ausgewähltem Hintergrund in der Hierarchie auf das Bild und ziehen Sie es aus dem Ordner "Texturen" im Projektfenster in das Inspektorfenster, wo es als neue Textur für den Hintergrund hinzugefügt werden soll. Siehe das Bild.
Schritt 4: Text hinzufügen

Erstellen Sie ein leeres Spielobjekt mithilfe der Dropdown-Symbolleiste Spielobjekt oben im Unity-Fenster. Benennen Sie es in "Text" um. Setzen Sie die Transformation zurück.
Klicken Sie im Hierarchiefenster auf Erstellen - 3D-Text. Setzen Sie die Transformation zurück.
Benennen Sie das 3D-Textobjekt um und geben Sie den gewünschten Text in die Textnetzkomponente im Inspektor ein.
Drehen Sie es um 90 Grad um die X- oder Z-Achse, damit es in der Kameraansicht richtig angezeigt wird.
Ziehen Sie das 3D-Textobjekt in das leere Textspielobjekt in der Hierarchie. Sein
Duplizieren Sie den 3D-Text wie gewünscht.
Schritt 5: Holen Sie sich einige Schriftarten (die Sie bereits haben)

Sie haben bereits viele Schriftarten. Sie können auf sie zugreifen (unter Windows), indem Sie den Explorer öffnen und in den Ordner Fonts wechseln, der sich unter OS / Windows / Fonts befindet.
Erstellen Sie im Unity-Projektfenster einen neuen Ordner in Assets und nennen Sie ihn auch Schriftarten.
Kopieren Sie die für Ihr Unity-Projekt gewünschten Schriftarten und fügen Sie sie aus dem Schriftartenordner Ihres Computers in den neuen Schriftartenordner ein, den Sie im Ordner "Assets" für Ihr Projekt erstellt haben.
Hinweis: Dies kopiert höchstwahrscheinlich mehrere verschiedene Dateien für jede Schriftart, eine für reguläre, fette, kursive usw.
Wählen Sie im Hierarchiefenster den 3D-Text aus, dessen Schriftart Sie ändern möchten, und ziehen Sie die gewünschte Schriftart aus dem Ordner "Schriftarten" im Projektfenster in das Feld "Schriftart" in der Komponente "Textnetz" im Inspektor.
Sie können die Schriftfarbe, -größe und andere Attribute in der Textnetzkomponente des 3D-Texts ändern. Dies wird im Inspektorfenster angezeigt, sofern Sie den zu bearbeitenden 3D-Text in der Hierarchie ausgewählt haben.
Der Text wird höchstwahrscheinlich etwas verschwommen aussehen. Sie können dies bereinigen, indem Sie die Schriftgröße erheblich vergrößern. Dies beeinträchtigt jedoch die Ansicht der Kamera an dieser Stelle, sodass Sie die Kamera und die Größe der Hintergrundebene neu anpassen müssen.
Schritt 6: Ändern Sie die Farbe des Texts, wenn Sie den Mauszeiger darüber halten

Erstellen Sie im Projektfenster einen neuen Ordner mit dem Namen "Skripte".
Erstellen Sie ein neues CSharp-Skript und nennen Sie es MouseHover.
Öffnen Sie das Skript in MonoDevelop.
Dieses Skript enthält drei Funktionen. Der erste sagt, dass der Text seine ursprüngliche Farbe haben soll. Die zweite Anweisung weist den Text an, die Farbe zu ändern, wenn die Maus ihn berührt, und die dritte Anweisung weist den Text an, zu seiner ursprünglichen Farbe zurückzukehren, nachdem die Maus nicht mehr darüber schwebt.
void Start () {renderer.material.color = Color.black; } void OnMouseEnter () {renderer.material.color = Color.red; } void OnMouseExit () {renderer.material.color = Color.black; }}
Fügen Sie das Skript zu jedem Textstück hinzu, indem Sie es aus dem Projektfenster auf den Namen des 3D-Textobjekts in der Hierarchie ziehen.
Damit das Skript funktioniert, müssen wir jedem 3D-Textstück Collider hinzufügen, damit der Code weiß, ob die Maus sie berührt oder nicht.
Um einen Collider hinzuzufügen, wählen Sie einen 3D-Text in der Hierarchie aus, gehen Sie zum Inspektorfenster und wählen Sie Komponente hinzufügen - Physik - Box-Collider. Fügen Sie jedem Text den Box-Collider hinzu und aktivieren Sie das Kontrollkästchen "Is Trigger".
Testen Sie, ob Ihre Tasten ihre Farbe ändern, indem Sie auf die Wiedergabetaste oben in der Mitte des Bildschirms klicken und mit der Maus darüber fahren.
Schritt 7: Schreiben Sie ein Skript zur Steuerung der Schaltflächen
Erstellen Sie ein neues Skript und nennen Sie es MainMenu. Legen Sie es in Ihrem Skriptordner ab und öffnen Sie es in MonoDevelop.
Deklarieren Sie boolesche (wahr / falsch) Variablen, eine für jede Schaltfläche, die Sie in Ihrem Menü haben möchten. Ich habe zwei Knöpfe, also schrieb ich:
public bool isStart;
public bool isQuit;
Schreiben Sie dann eine Funktion namens OnMouseUp (). Dies wird aktiviert, wenn die Maustaste losgelassen wird. Dies ist eine bessere Möglichkeit, eine Taste zu aktivieren als OnMouseDown (), da verhindert wird, dass die Funktion wiederholt ausgeführt wird, während die Maustaste gedrückt gehalten wird.
void OnMouseUp () {if (isStart) {Application.LoadLevel (1); } if (isQuit) {Application.Quit (); }}
Application.LoadLevel (1) lädt Szene Nummer 1 des Spiels. (Die Menüszene sollte Stufe 0 sein. Sie können in den Build-Einstellungen unter Datei ändern, welche Szene welche ist.)
Application.Quit () beendet das Spiel, obwohl dies nur dann funktioniert, wenn das Spiel als PC / Mac-Anwendung geöffnet ist. Es passiert nichts, wenn das Spiel in Unity oder online läuft.
Schritt 8: Lassen Sie die Tasten Dinge tun!

Fügen Sie das MainMenu-Skript zu jedem Ihrer 3D-Textobjekte hinzu, die als Schaltflächen dienen.
Da Sie für jede Kategorie von Schaltflächen öffentliche Bools deklariert haben, sollten diese für jede Schaltfläche im Inspektor angezeigt werden. Gehen Sie zum Inspektor und überprüfen Sie die entsprechende boolesche Variable für jede Schaltfläche. Im Bild oben sehen Sie, wie dies aussehen sollte.
Das war's, du bist fertig! Sie können Ihrem MainMenu-Skript eine zusätzliche Codezeile hinzufügen, um sicherzustellen, dass es funktioniert. Sagen Sie ihm einfach, dass er die Farbe der Schaltfläche ändern soll, wenn Sie darauf klicken (in eine andere Farbe als wenn Sie mit der Maus darüber fahren).
void OnMouseUp () {if (isQuit) {Application.Quit (); } if (isStart) {Application.LoadLevel (1); renderer.material.color = Color.cyan; }}