Home > Technologie > Einführung in die Einheit

Einführung in die Einheit

Advertisement

Einführung in die Einheit

Das ist anspruchsvoll für Anfänger!

Sie müssen Unity 4.x (Free oder Pro) installieren.
http://unity3d.com/unity/download

Starten Sie Unity und erstellen Sie ein neues Projekt. Mach dir keine Sorgen über den Import von Dingen noch nicht!

Schritt 1: Das ist EINHEIT!

Einführung in die Einheit

Informieren Sie sich über die verschiedenen Unity-Fenster:
http://unity3d.com/unity/workflow/integrated-editor

Lassen Sie uns unser Layout auf das Standardlayout einstellen.
Gehen Sie zur Menüleiste und klicken Sie auf Fenster> Layouts> Standard

  1. Menüleiste
  2. Objektmanipulationstools (Gizmo): Verwenden Sie diese Option, um die Ansicht zu verschieben, Objekte zu verschieben, zu drehen und zu vergrößern.
  3. Pivot-Einstellung: Hiermit wird die Position des Gizmo geändert, um entweder am Pivotpunkt des Objekts oder im Zentrum des Objekts zu liegen.
  4. Koordinateneinstellungen: Hiermit können Sie ändern, ob ein Objekt im globalen Koordinatensystem oder auf dem lokalen Koordinatensystem (basierend auf der Rotation des Objekts) verschoben werden soll.
  5. In-Editor Spiel Manipulation Tools: Verwenden Sie diese zu starten / stoppen, Pause, und schritt das Spiel.
  6. Ebenen: Ändern Sie, welche Ebenen in Ihrer Szene sichtbar sind, falls Sie nur auf einen Satz von Objekten arbeiten möchten.
  7. Layout-Menü: Ändern Sie Ihr aktuelles Fenster-Layout.
  8. Hierarchie Fenster: Hier sind Spielobjekte Teil der aktuellen Szene. Manipuliere sie hier.
  9. Szene / Spiel / Animator Viewer: Hier sehen Sie Ihr Spiel. Navigieren Sie mit der rechten Maustaste mit WASD oder mit der Maus zum Schwenken / Zoomen / Neigen.
  10. Gizmo: Dies ist ein Gizmo. Verwenden Sie diese Option zum Verschieben, Drehen und Verändern der Objekte auf der Basis des ausgewählten Werkzeugs.
  11. Inspector Window: Hier ändern Sie die Einstellungen für ein ausgewähltes Objekt.
  12. Projektfenster: Hier werden alle Assets für das Projekt gespeichert.
  13. Konsolenfenster: Hier werden Fehler, Warnungen und Drucknachrichten angezeigt. Verwenden Sie diese zum Debuggen.
  14. Nachrichtenleiste: Immer wenn Sie einen Fehler, eine Warnung oder eine Meldung haben, wird sie hier unten angezeigt. Gehen Sie auf die Konsole, um alle Fehler zu beheben.

Schritt 2: Importieren von Paketen

Einführung in die Einheit

Einführung in die Einheit

Wir beginnen mit dem Import einiger Unity Standard Assets.

Klicken Sie in der Menüleiste auf die Registerkarte Assets, um einige Pakete zu importieren.

Assets> Paket importieren> Terrain-Assets
Assets> Paket importieren> Zeichencontroller

Schritt 3: Gelände

Einführung in die Einheit

Einführung in die Einheit

Einführung in die Einheit

Lassen Sie uns einige Berge hinzufügen!

In der Menüleiste gehen Sie zu GameObject> Create Other> Terrain

Wählen Sie das Geländeobjekt aus, indem Sie in der Szene oder in der Objektliste im Fenster Hierarchie darauf klicken.

Klicken Sie im Inspector-Bedienfeld auf die Schaltfläche Raise / Lower Terrain.

Einführung in die Einheit

Klicken Sie mit der linken Maustaste und ziehen Sie eine beliebige Stelle auf das Gelände in der Szene, um die Höhe zu erhöhen.
Halten Sie die Taste nach unten gedrückt.
Experimentieren Sie mit verschiedenen Pinselformen und -größen.

Einführung in die Einheit

Hinzufügen von Texturen

Nun wählen Sie im Inspector das Werkzeug Paint texture.
Klicken Sie auf die Schaltfläche Texturen bearbeiten unter der Überschrift Texturen und wählen Sie Text hinzufügen.

Einführung in die Einheit

Klicken Sie im angezeigten Fenster auf "Select" (Select) in dem Feld "Texture".
Doppelklicken Sie im daraufhin erscheinenden Fenster auf Gras (Hügel).
Klicken Sie auf Hinzufügen am unteren Rand des Textfelds "Terrain hinzufügen".

Einführung in die Einheit

Fügen Sie ein paar Texturen mit der gleichen Methode.

Beschaffenheit

Wenn das Terrain- und Paint Texture-Tool noch ausgewählt ist, wählen Sie eine andere Textur als Gras.
Nun, wie bei der Höhenänderung, klicken und ziehen Sie im Ansichtsfenster, um die Textur des Terrains zu ändern.

Einführung in die Einheit

Bewegen Sie Ihre Hauptkamera

Suchen Sie Ihre Kamera, indem Sie auf das Objekt Hauptkamera in der Liste der Objekte auf der linken Seite des Bildschirms unter Hierarchie doppelklicken.

Einführung in die Einheit

Aktivieren Sie das Bewegungstool, indem Sie auf den 4-Richtungspfeil oben links klicken.

Einführung in die Einheit

Sie können Objekte verschieben, indem Sie die Pfeile des Werkzeugs ziehen.
Bewegen Sie Ihr Hauptkameraobjekt so, dass die Kameravorschau etwas Interessantes anzeigt.

Schritt 4: Leuchten

Einführung in die Einheit

Spiel-Objekt> Andere erstellen> Richtungs-Licht

Versuchen Sie, die Intensität des Lichts zu ändern oder spielen Sie mit der Richtung und Lage.

Einführung in die Einheit

Einführung in die Einheit

Mal sehen, was der Spieler sieht!

Jetzt können Sie die Dinge sehen!

Schritt 5: Spieler

Einführung in die Einheit

Suchen Sie im Project-Fenster das Asset "First Person Player Controller".
Assets> Standardwerte> Zeichencontroller> First Person Controller

Einführung in die Einheit

Füge einen Spieler zur Szene hinzu, indem du ihn in das Hierarchiefenster ziehst.

Benennen Sie es in Player um, indem Sie den Namen im Inspector Window ändern.
Hinweis: Wenn Sie nach der Umbenennung nicht auf enter / return drücken, ändert sich der Name nicht.

Einführung in die Einheit

Versuchen Sie, den Spieler auf dem Terrain zu positionieren.

Achten Sie darauf, dass der Spieler das Terrain nicht schneidet, sonst fallen Sie durch.

Löschen Sie die Hauptkamera, indem Sie mit der rechten Maustaste auf den Namen in der Hierarchie klicken und auf Löschen klicken.

Drücke Start. Du solltest jetzt gehen können

Schritt 6: Szenenobjekte

Einführung in die Einheit

Einführung in die Einheit

Einführung in die Einheit

Lassen Sie uns ein schönes Gebäude kostenlos!

https://www.assetstore.unity3d.com/#/content/6298

Einführung in die Einheit

In Einheit öffnen. Herunterladen! Erstellen Sie ein Konto oder melden Sie sich bei Bedarf an.
Importieren Sie alle Assets.

Assets> Paket importieren> Skyboxen
Überprüfen Sie nur die Dateien, die sich auf DawnDusk beziehen

Einführung in die Einheit

Bearbeiten> Render-Einstellungen> Skybox-Material

Einführung in die Einheit

Ziehen Sie die Präfabs der Modelle in Ihre Szene.

Schritt 7: Cursor sperren / verbergen

Einführung in die Einheit

Erstellen Sie Skripts Ordner

Machen Sie ein neues Javascript-Skript namens "Menü".

Wir beginnen mit dem Hinzufügen der grundlegendsten Menü-Element für einen First Person Shooter: Sperren und Verstecken der Maus, wenn im Spiel.

// Wahr, wenn das Menü geöffnet ist und die Maus entsperrt ist
VarMenuOpen: boolean = false;

FunctionStart () {
UpdateCursorLock ();
aufrechtzuerhalten.

FunctionUpdate () {
// Prüfen Sie, ob die Menütaste losgelassen wurde
If (Input.GetButtonUp ( "MenuOpen")) {
MenuOpen =! MenuOpen;
UpdateCursorLock ();
aufrechtzuerhalten.
aufrechtzuerhalten.

// Wird jedes Mal aufgerufen, wenn die Gui gezeichnet werden soll
FunctionOnGUI () {
If (! MenuOpen) {
// Zeichne das Fadenkreuz

// Den Text innerhalb des Labels zentrieren
VarcenteredStyle = GUI.skin.GetStyle ( "Label");
CenteredStyle.alignment = TextAnchor.MiddleCenter;
// Zeichnen Sie das Etikett in der Mitte des Bildschirms
GUI.Label (Rect (Screen.width / 2-50, Screen.height / 2-25,100,50), "+", zentriertStyle);
aufrechtzuerhalten.
aufrechtzuerhalten.

FunctionUpdateCursorLock () {
Screen.lockCursor =! MenuOpen;
Screen.showCursor = MenuOpen;
aufrechtzuerhalten.

Um das Menü auf der Szene zu erhalten, erstellen wir ein leeres Spielobjekt (GameObject> Leere erstellen).

Lassen Sie uns dieses "Menü" nennen.

Ziehen Sie das Skript auf das Menüobjekt.

Wir werden dazu später mehr Funktionen hinzufügen.

Lassen Sie uns eine Menü-Öffnen / Schließen-Schaltfläche hinzufügen

Bearbeiten> Projekteinstellungen> Eingabe.
Öffnen Sie die "Achsen".
Bearbeiten Sie unter der Größe im Eingabe-Manager die Größe auf 21.
Umbenennen eines der neuen Inputs aufgerufen werden "Menu Open" und drinnen, stellen Sie die "Positive Button" zu sein "Escape"

Schritt 8: Geschütze und Geschosse

Einführung in die Einheit

Gewehr

Lassen Sie uns diese Pistole ausprobieren:
https://www.assetstore.unity3d.com/#/content/10332

Ziehen Sie in DartGun Prefab von Compressed Gas Pistol> Prefab> DartGun auf die Szene.

Ein Fertighaus ist wie eine Klasse, aber in "Objekt" -Form. Es ist die Kopie mit guten Vorgaben, die Sie für alle Ihre verschiedenen Ebenen verwenden können.

Setzen Sie DartGun in Player> Hauptkamera

Einführung in die Einheit

Positionieren / Drehen des DartGun (Player> Hauptkamera> DartGun) gemäß den folgenden Werten:

Einführung in die Einheit

Positionieren / Drehen des inneren DartGun (Player> Hauptkamera> DartGun> DartGun) gemäß den folgenden Werten:

Einführung in die Einheit

Lassen Sie uns erstellen und schießen einige Kugeln!

Erstellen Sie Sphere, indem Sie zu GameObject> Create Other> Sphere

Benennen Sie das Objekt in Bullet um

Fügen Sie dem Bullet-Objekt einen neuen RigidBody hinzu.
Klicken Sie auf Komponente hinzufügen> Physics> RigidBody

Einführung in die Einheit

Deaktivieren Sie die Schwerkraft
Kollisionserkennung auf Dauer einstellen

Einführung in die Einheit

Setzt den Maßstab der Kugel-Transformation auf 0,2, 0,2, 0,2

Einführung in die Einheit

Erstellen wir ein neues Javascript-Skript namens "Bullet".

// Die Geschwindigkeit, die die Kugel bewegt
VarSpeed: float = .4;

// Die Anzahl der Sekunden, bevor das Aufzählungszeichen automatisch zerstört wird
VarSecondsUntilDestroy: float = 10;

PrivatevarstartTime: float;

FunctionStart () {
StartTime = Time.time;
aufrechtzuerhalten.

FunctionFixedUpdate () {
// Vorwärts fahren
This.gameObject.transform.position + = Geschwindigkeit * this.gameObject.transform.forward;

// Wenn das Bullet so lange wie SecondsUntilDestroy existiert hat, zerstöre es
If (Time.time-startTime> = SecondsUntilDestroy) {
Destroy (this.gameObject);
aufrechtzuerhalten.
aufrechtzuerhalten.

FunctionOnCollisionEnter (Kollision: Kollision) {

// Entferne die Kugel aus der Welt
Destroy (this.gameObject);
aufrechtzuerhalten.

Ziehen Sie das Bullet-Skript per Drag & Drop aus dem Projektfenster (Assets> Scripts) in das Bullet-Objekt im Hierarchiefenster.
Schließlich machen wir das Bullet zu einem Prefab und löschen es aus der Szene.
Erstellen Sie ein Präfab des Aufzählungszeichens, indem Sie das Aufzählungsobjekt in das Projektfenster zu dem Assets> Prefabs im Hierarchiefenster ziehen.

Erstellen wir ein neues Javascript-Skript namens "Gun".

// Dies ist die Aufzählung prefab die Instanziierung, wenn der Spieler klickt
// Es muss auf ein Objekt im Editor gesetzt sein
VarBullet: GameObject;

// Feuer eine Kugel
FunctionFire () {
// Erstellen Sie eine neue Aufzählung, die in die gleiche Richtung zeigt wie die Pistole
VarnewBullet: GameObject = Instantiate (Bullet, transform.position, transform.rotation);
aufrechtzuerhalten.

FunctionUpdate () {
// Feuer, wenn die linke Maustaste angeklickt wird
If (Input.GetButtonDown ( "Fire1")) {
Feuer();
aufrechtzuerhalten.
aufrechtzuerhalten.

Drag & Drop das Gun-Skript aus dem Projektfenster (Assets> Scripts), um das Gewehr Objekt im Hierarchie-Fenster.

Drag & Drop das Bullet-Prefab in das Gun-Skript, wo es heißt, "None (Game Object)".

Denken Sie daran, immer Änderungen am Prefab vorzunehmen, indem Sie zum Szenenobjekt> Inspektorfenster> prefab> übernehmen.

Stellen wir sicher, dass der Spieler nicht erschossen wird!

Ebenen> Ebenen bearbeiten

Einführung in die Einheit

Erstellen Sie Bullet Layer
Player-Ebene erstellen

Einführung in die Einheit

Wählen Sie das Bullet-Objekt aus, und legen Sie den Layer auf Bullet fest.

Einführung in die Einheit

Wählen Sie den Player und stellen Sie auf Player layer.
Sagen Sie ja zum Ändern der Kinder.

Bearbeiten> Projekteinstellungen> Physik

Deaktivieren Sie Bullet / Player und Bullet / Bullet

Einführung in die Einheit

Schritt 9: AI

Einführung in die Einheit

Sie müssen den folgenden Zombie herunterladen:
http://www.mixamo.com/editor/new/86

Drücken Sie Ja, um die Animation anzuzeigen.
Klicken Sie auf "Download"
Klicken Sie auf Anmelden
Benutzerkonto anlegen
Klicken Sie erneut auf Download
Klicken Sie auf Kasse
Wählen Sie FBX für Unity for Download Format aus
Klicken Sie auf "Download"

Erstellen Sie den Ordner "Modelle" im Fenster "Projekte"> "Assets"

Ziehen Sie und ziehen Sie den Zombie in den Modellordner

Wenn beim Importieren des Modells ein Warnfenster erscheint, klicken Sie auf Fix Now.

GameObject> Leere erstellen
Benennen Sie das GameObject zu Zombie um
Ziehen Sie das Zombie-Modell auf das Zombie-Objekt

Einführung in die Einheit

Legen Sie einen Zeichen-Controller auf das Zombie-Objekt
Im Inspektor die Mitte Y auf 1 stellen
Fügen Sie eine Komponente Capsule Collider hinzu
Komponente hinzufügen> Physics> Capsule Collider
** Achten Sie darauf, die genauen Werte zu kopieren.

Einführung in die Einheit

Einführung in die Einheit

Erstellen Sie ein neues Skript mit dem Namen Zombie in Ihrem Skriptordner.

VarVisionDistance: float = 200;
VarMovementSpeed: float = 2;
VarHealth: int = 2;

FunctionFixedUpdate () {
// Holen Sie sich das Player-Objekt
Varplayer: GameObject = GameObject.Find ( "Spieler");
VarcharacterController: CharacterController = GetComponent (CharacterController);

// Erhalten Sie die Position der Zombie-Augen
VareyePosition: Vector3 = transform.position;
EyePosition.y + = characterController.height;

/ / Holen Sie sich den Unterschied zwischen dem Spieler und die Zombie-Positionen
// Dies erzeugt einen Richtungsvektor, der in Richtung des Spielers zeigt.
VarlookDirection = player.transform.position-eyePosition;
LookDirection = lookDirection.normalized;

// Suchen Sie nur den Spieler oder Objekte, die Teil der Landschaft sind (Gelände, Gebäude, etc.)
VarlayerMask: int = 1 << LayerMask.NameToLayer ( "Spieler") | 1 << LayerMask.NameToLayer ( "Default");

// Die Richtung, in die sich der Zombie bewegt, steht standardmäßig still
VarmovementDirektion: Vector3 = Vector3.zero;

// hitInfo enthält Informationen darüber, was der Zombie sehen kann.
VarhitInfo: RaycastHit;
Wenn (Physics.Raycast (eyePosition, lookDirection, hitInfo, VisionDistance, layerMask)) {
// Wenn der Zombie sieht, dass sich der Spieler zu ihnen bewegt.
If (hitInfo.collider.gameObject == Spieler) {
MovementDirection = lookDirection;
BewegungDirektion.y = 0;
BewegungDirektion = BewegungDirektion.normalisiert;
aufrechtzuerhalten.
aufrechtzuerhalten.

// Gesicht und bewegen Sie sich in die gewählte Richtung
If (movementDirection! = Vector3.zero) {
Transform.rotation = Quaternion.LookRotation (movementDirection, Vector3.up);
aufrechtzuerhalten.
CharacterController.SimpleMove (movementDirection * MovementSpeed);
aufrechtzuerhalten.

Setzen Sie Skript auf den Zombie.

Zombie-Ebene erstellen (Ebenen> Ebenen bearbeiten)

Lege Zombie in die Zombie-Ebene, damit der Zombie andere Zombies durchschauen kann.

Drag & Drop der Zombie in den Ordner Assets> Prefabs, um ein Prefab davon zu erstellen.

Schritt 10: Animation

Einführung in die Einheit

Einführung in die Einheit

Einführung in die Einheit

Einführung in die Einheit

Suchen Sie den Zombie @ walking_3 Asset im Ordner Models.
Auf dieselbe Weise haben Sie ein Skript erstellt, diesmal einen Animator-Controller

Projektfenster> Rechtsklick> Erstellen> Animator-Controller

Nennen Sie es Zombie Animator.Now doppelklicken Sie auf den Zombie Animator.

Suchen Sie nun im Projektfenster das Zombie @ walking_3-Asset erneut.

Öffnen Sie den Asset, indem Sie auf den Pfeil daneben klicken.

Einführung in die Einheit

Ziehen Sie nun die walking_3-Animation per Drag & Drop in das Animator-Fenster.

Verbinden Sie den Any State mit dem walking_3 Status, indem Sie mit der rechten Maustaste auf Any State> Make Transition klicken und dann auf walking_3 klicken.

Zuerst stellen wir sicher, dass die laufenden 3 Schleifen korrekt durch Bearbeiten des Übergangspfeils (klicken Sie auf den Übergangspfeil).

Einführung in die Einheit

Stellen Sie sicher, dass die Walking-Animation nicht über Runde und die Pfeile auf der Zeitleiste sind neben einander.

Einführung in die Einheit

Als nächstes stellen wir sicher, dass die Animation ist nicht super duper langsam durch Bearbeiten der walking_3 Animation im Animator-Fenster.
Stellen Sie die Geschwindigkeit auf ca. 3.4.

Einführung in die Einheit

Einführung in die Einheit

Jetzt in Ihrer Szene, gehen Sie zum Zombie und ziehen Sie den Animator-Controller auf das Animationsobjekt.
Deaktivieren Sie "Root Motion anwenden" und setzen Sie den Culling-Modus auf "Immer animieren".

Einführung in die Einheit

Schließlich gehen Sie zu Prefab> Übernehmen und wenden Sie die Einstellungen auf das Prefab. Stellen Sie sicher, dass das Zombie-Prefab jetzt auch einen Animator-Controller hat!

Testen Sie es in der Szene!

Schritt 11: Ausräumende Zombies

Einführung in die Einheit

Lassen Sie uns ein Spawner machen!

Erstellen Sie ein neues leeres GameObject.
Benennen Sie das Objekt Spawner.
Erstellen Sie ein neues Skript namens Spawner und fügen Sie den folgenden Code hinzu:

// Das Objekt, das erzeugt werden soll
VarSpawnObject: GameObject;

// in Sekunden
VarSpawnStartDelay: float = 0;
VarSpawnRate: float = 5,0;

FunctionStart ()
{
InvokeRepeating ( "Spawn", SpawnStartDelay, SpawnRate);
aufrechtzuerhalten.

// SpawnObject erstellen
FunctionSpawn ()
{
Instantiieren (SpawnObject, transform.position, transform.rotation);
aufrechtzuerhalten.

Fügen Sie das Skript zum Spawner hinzu.
Mit der ausgewählten Spawner Drag & Drop die Zombie prefab in die Spawn Object-Eigenschaft des Spawner-Skript.

Einführung in die Einheit

Sie können feststellen, dass dieses Skript dem Gun-Skript sehr ähnlich ist.

Machen Sie dies zu einem Fertighaus.

Legen Sie einige in Ihrer Karte!

Schritt 12: Statistik und Endzustand

Einführung in die Einheit

Lassen Sie uns geben dem Spieler einige Gesundheit, die Zombies etwas Gesundheit und Angriffskraft, und die Pistole einige Angriffskraft.

Fügen Sie im Skriptordner ein neues Skript mit dem Namen Player hinzu.
Der folgende Code erlaubt dem Spieler, beschädigt zu werden, und das Spiel neu zu starten, wenn der Spieler getötet wird.

// Wie oft der Spieler beschädigt werden kann, bevor das Spiel neu gestartet wird
VarHealth: int = 10;

// Minimale Anzahl Sekunden zwischen dem Spieler, der verletzt wird
VarDamageInvulnerabilityDelay: float = 2;

// Verfolgt das letzte Mal, wenn der Spieler beschädigt wurde
PrivatevarinvulnerabilityStartTime: float;

FunctionStart () {
// Setze den Anfangswert so, dass der Spieler vorübergehend anfällig bei spawn ist
InvulnerabilityStartTime = Zeit.zeit;
aufrechtzuerhalten.

// Versuch, den Spieler durch die angegebene Anzahl von Trefferpunkten zu beschädigen
FunctionHurt (Schaden: int) {
// Wenn wir mindestens so lange gewartet haben wie DamageInvulnerabilityDelay
If (Time.time-invulnerabilityStartTime> = DamageInvulnerabilityDelay) {
// Spieler beschädigen
Gesundheit- = Schaden;

// Den Unverwundbarkeits-Timer zurücksetzen
InvulnerabilityStartTime = Zeit.zeit;
aufrechtzuerhalten.

// Wenn der Spieler keine Gesundheit hat
Wenn (Gesundheit <= 0) {
// Die Ebene neu laden
Application.LoadLevel (Application.loadedLevelName);
aufrechtzuerhalten.
aufrechtzuerhalten.

Wenn der Zombie mit dem Spieler kollidiert, schaden dem Spieler.

Fügen Sie dem Zombie-Skript die folgende Funktion hinzu.

// Wenn der Zombie mit etwas kollidiert
FunctionOnTriggerStay (andere: Collider) {
// Holen Sie sich den Spieler, mit dem der Zombie kollidierte, wenn überhaupt
Varplayer = other.gameObject.GetComponent (Player);

// Wenn es mit etwas anderem als einem Player-Spieler kollidiert wird null sein
Wenn (Spieler! = Null) {
// Subtrahiere eine von der Gesundheit des Spielers
Spieler.Hurt (1);
aufrechtzuerhalten.
aufrechtzuerhalten.

Wenn die Kugel einen Zombie trifft, verletzt der Zombie.
Ersetzen Sie die OnCollisionEnter-Funktion im Bullet-Skript durch Folgendes

FunctionOnCollisionEnter (Kollision: Kollision) {
// Holen Sie sich den Zombie, dass die Bullet kollidierte, wenn überhaupt
Varzombie = collision.transform.gameObject.GetComponent (Zombie);

// Wenn es mit etwas anderem als einem Zombie-Zombie kollidiert, wird null sein
Wenn (zombie! = Null) {
// Subtrahiere einen von der Gesundheit des Zombies
zombie.Gesundheit--;

// Wenn der Zombie gesund ist, entfernen Sie ihn aus dem Spiel
Wenn (zombie.Health <= 0) {
Destroy (collision.transform.gameObject);
aufrechtzuerhalten.
aufrechtzuerhalten.

// Entferne die Kugel aus der Welt
Destroy (this.gameObject);
aufrechtzuerhalten.

Schritt 13: HUD und Menüsystem

Einführung in die Einheit

Lassen Sie uns jetzt unser Menü-Script verbessern!

Let's add Resume, Restart, und beenden Knöpfe sowie etwas sagen uns, wie viel Gesundheit bleibt.

Fügen Sie beide Funktionen dem Menüskript hinzu:

FunctionDrawHUD () {

// Holen Sie sich die Gesundheit des Spielers
Varplayer = GameObject.Find ( "Spieler");
Varhealth = Spieler.GetComponent (Spieler) .Health;

// Position
Varleft = 10;
Vartop = 10;
Varwidth = 100;
Varheight = 25;

// Erstellen Sie ein Hintergrundfeld
GUI.Box (Rect (links, oben, Breite, Höhe), "Gesundheit:" + Gesundheit);

DrawCrosshair ();
aufrechtzuerhalten.

// Zeichnen Sie das Menü
FunctionDrawMenu () {
VarcenterX = Screen.width / 2;
VarcenterY = Bildschirmhöhe / 2;

// Speicherort des Menüs
VarmenuLeft = centerX-50;
VarmenuTop = centerY-50;
VarmenuWidth = 100;
VarmenuHeight = 100;

VarbuttonX = menuLeft + 10;
VarbuttonWidth = 80;
VarbuttonHöhe = 20;
VarbuttonDist = 25; // Abstand zwischen jeder Schaltfläche

// Erstellen Sie ein Hintergrundfeld
GUI.Box (Rect (menuLeft, menuTop, menuWidth, menuHeight), "Menü");

// Start / Fortsetzen
Wenn (GUI.Button (Rect (buttonX, menuTop + 1 * buttonDist, buttonWidth, buttonHeight), "Resume")) {
MenuOpen = false;
UpdateCursorLock ();
aufrechtzuerhalten.

// Neustart
Wenn (GUI.Button (Rect (buttonX, menuTop + 2 * buttonDist, buttonWidth, buttonHeight), "Restart")) {
Application.LoadLevel (Application.loadedLevel);
aufrechtzuerhalten.

// Quit (funktioniert nur im Build nicht im eidtor!)
Wenn (GUI.Button (Rect (buttonX, menuTop + 3 * buttonDist, buttonWidth, buttonHeight), "Beenden")) {
Application.Quit ();
aufrechtzuerhalten.
aufrechtzuerhalten.

Ersetzen Sie nun die OnGUI-Funktion durch:

// Wird jedes Mal aufgerufen, wenn die Gui gezeichnet werden soll
FunctionOnGUI () {
If (! MenuOpen) {
DrawHUD ();
}sonst{
DrawMenu ();
aufrechtzuerhalten.
DrawCrosshair ();
aufrechtzuerhalten.

Genießen Sie visuelles Feedback!

Schritt 14: Spielen Sie herum und haben Sie Spaß

Einführung in die Einheit

Machen Sie mehr interessantes Gelände.

Machen Sie einige Arme und Finger für die Pistole. Drehen Sie sie rückwärts auf Trieb zu emulieren Rückstoß!

Sie könnten versuchen, zum Beispiel, die Zombie laufen, um den Spieler und dann gangnam Stil durch das Herunterladen von Animationen:
http://www.mixamo.com/motions?page=1&order=relevance&free=1&limit=48

Related Reading