So erstellen Sie ein Kanonenspiel in Unity

Das Erstellen eines Kanonenspiels in Unity ist eine großartige Möglichkeit, die Grundlagen der Spieleentwicklung zu erlernen. In diesem Tutorial erstellen wir ein einfaches Spiel, bei dem der Spieler mit einer Kanone zielen und schießen kann, um Ziele zu treffen. Wir behandeln das Einrichten des Projekts, das Erstellen und Steuern einer Kanone und das Hinzufügen von Zielen.

Schritt 1: Einrichten des Projekts

Öffnen Sie zunächst Unity und erstellen Sie ein neues 2D-Projekt. Nennen Sie Ihr Projekt "CannonGame". Sobald das Projekt erstellt ist, befinden Sie sich im Hauptfenster des Unity-Editors.

Schritt 2: Erstellen der Kanone

Wir brauchen eine visuelle Darstellung der Kanone. Sie können ein einfaches rechteckiges Sprite erstellen, das als Kanone fungiert. Gehen Sie dazu wie folgt vor:

  1. Klicken Sie mit der rechten Maustaste in das Fenster Hierarchie und wählen Sie Leeres erstellen. Nennen Sie es "Cannon".
  2. Klicken Sie mit der rechten Maustaste auf das Objekt "Cannon" und wählen Sie 2D-Objekt -> Sprite. Nennen Sie es "CannonSprite".
  3. Klicken Sie im Inspector-Fenster auf das Sprite-Feld und wählen Sie ein Sprite für Ihre Kanone aus.

Positionieren Sie die Kanone am unteren Bildschirmrand, indem Sie ihre Position in der Komponente Transform auf (0, -4, 0) setzen.

Erstellen Sie nun ein Skript zur Steuerung der Kanone. Klicken Sie mit der rechten Maustaste in den Ordner Assets, wählen Sie Erstellen -> C#-Skript und nennen Sie es "CannonController". Doppelklicken Sie auf das Skript, um es in Ihrem Code-Editor zu öffnen.

// CannonController.cs
using UnityEngine;

public class CannonController : MonoBehaviour
{
    public GameObject cannonballPrefab;
    public float shootForce = 700f;

    void Update()
    {
        Aim();
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Aim()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
        transform.up = direction;
    }

    void Shoot()
    {
        GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
        Rigidbody2D rb = cannonball.GetComponent();
        rb.AddForce(transform.up * shootForce);
    }
}

Schritt 3: Erstellen der Kanonenkugel

Wir müssen eine Kanonenkugel erstellen, die die Kanone abfeuern kann. So geht's:

  1. Klicken Sie mit der rechten Maustaste in das Fenster Hierarchie und wählen Sie 2D-Objekt -> Sprite. Nennen Sie es "Cannonball".
  2. Klicken Sie im Fenster Inspector auf das Feld Sprite und wählen Sie ein Sprite für Ihre Kanonenkugel aus.
  3. Fügen Sie der Kanonenkugel eine Rigidbody2D-Komponente hinzu, indem Sie auf Komponente hinzufügen klicken und Rigidbody2D auswählen.
  4. Fügen Sie der Kanonenkugel eine CircleCollider2D-Komponente hinzu, indem Sie auf Komponente hinzufügen klicken und CircleCollider2D auswählen.

Ziehen Sie als Nächstes die Kanonenkugel aus dem Ordner Hierarchy in den Ordner Assets, um ein Prefab zu erstellen. Dieses Prefab wird von der Kanone zum Abfeuern von Kanonenkugeln verwendet.

Legen Sie im Fenster Inspector des Skripts CannonController (an das Cannon-Objekt angehängt) das Feld CannonballPrefab auf das Cannonball-Prefab fest.

Schritt 4: Ziele erstellen

Fügen wir einige Ziele hinzu, auf die der Spieler schießen kann:

  1. Klicken Sie mit der rechten Maustaste in das Fenster Hierarchie und wählen Sie 2D-Objekt -> Sprite. Nennen Sie es "Target".
  2. Klicken Sie im Fenster Inspector auf das Feld Sprite und wählen Sie ein Sprite für Ihr Ziel aus.
  3. Fügen Sie dem Ziel eine BoxCollider2D-Komponente hinzu, indem Sie auf Komponente hinzufügen klicken und BoxCollider2D auswählen.

Duplizieren Sie das Ziel, indem Sie mit der rechten Maustaste darauf klicken und Duplizieren auswählen. Positionieren Sie die Ziele auf dem Bildschirm.

Schritt 5: Kollisionsbehandlung

Wir müssen uns darum kümmern, was passiert, wenn eine Kanonenkugel ein Ziel trifft. Erstellen Sie dazu ein Skript namens "Target":

  1. Klicken Sie mit der rechten Maustaste in den Ordner Assets, wählen Sie Erstellen -> C#-Skript und nennen Sie es "Target".
  2. Doppelklicken Sie auf das Skript, um es in Ihrem Code-Editor zu öffnen.
// Target.cs
using UnityEngine;

public class Target : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Cannonball"))
        {
            Destroy(gameObject);
        }
    }
}

Hängen Sie das Target-Skript an alle Zielobjekte an. Stellen Sie sicher, dass Ihr Cannonball-Prefab das Tag "Cannonball" hat.

Abschluss

Indem Sie diese Schritte befolgen, haben Sie ein einfaches Kanonenspiel in Unity erstellt. Sie haben gelernt, wie Sie ein Projekt einrichten, eine Kanone erstellen und steuern und Ziele hinzufügen. Dieses Projekt behandelt grundlegende Konzepte der Spieleentwicklung wie Objekterstellung, Benutzereingabe, Physik und Kollisionserkennung. Sie können dieses Spiel weiter verbessern, indem Sie Funktionen wie Punktevergabe, Level und verschiedene Arten von Zielen hinzufügen. Viel Spaß beim Experimentieren und beim Lernen von mehr über Unity!