Hoe je een kanonspel in eenheid maakt

Het maken van een kanonspel in Unity is een geweldige manier om de basisprincipes van game-ontwikkeling te leren. In deze tutorial gaan we een eenvoudig spel maken waarin de speler een kanon kan richten en schieten om doelen te raken. We behandelen het opzetten van het project, het maken en besturen van een kanon en het toevoegen van doelen.

Stap 1: Het project opzetten

Open eerst Unity en maak een nieuw 2D-project aan. Noem uw project "CannonGame". Zodra het project is aangemaakt, bevindt u zich in het hoofdvenster van de Unity-editor.

Stap 2: Het kanon maken

We hebben een visuele weergave van het kanon nodig. Je kunt een eenvoudige rechthoekige sprite maken die als je kanon kan dienen. Om dit te doen:

  1. Klik met de rechtermuisknop in het venster Hiërarchie en selecteer Leeg maken. Noem het "Cannon".
  2. Klik met de rechtermuisknop op het "Cannon"-object en selecteer 2D-object -> Sprite. Noem het "CannonSprite".
  3. In het venster Inspector klikt u op het veld Sprite en selecteert u een sprite voor uw kanon.

Plaats het kanon onderaan het scherm door de positie in te stellen op (0, -4, 0) in de component Transform.

Maak nu een script om het kanon te besturen. Klik met de rechtermuisknop in de map Assets, selecteer Create -> C# Script en noem deze "CannonController". Dubbelklik op het script om het in uw code-editor te openen.

// 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);
    }
}

Stap 3: Het maken van de kanonskogel

We moeten een kanonskogel maken zodat het kanon kan schieten. Hier is hoe:

  1. Klik met de rechtermuisknop in het venster Hiërarchie en selecteer 2D Object -> Sprite. Noem het "Cannonball".
  2. In het venster Inspector klikt u op het veld Sprite en selecteert u een sprite voor uw kanonskogel.
  3. Voeg een Rigidbody2D-component toe aan de kanonskogel door op Component toevoegen te klikken en Rigidbody2D te selecteren.
  4. Voeg een component CircleCollider2D toe aan de kanonskogel door op Component toevoegen te klikken en CircleCollider2D te selecteren.

Sleep vervolgens de kanonskogel van de Hiërarchie naar de map Assets om een ​​prefab te maken. Dit prefab zal door het kanon worden gebruikt om kanonskogels af te schieten.

In het venster Inspector van het CannonController-script (gekoppeld aan het Cannon-object) stelt u het veld CannonballPrefab in op de cannonball-prefab.

Stap 4: Doelen creëren

Laten we een aantal doelen toevoegen waar de speler op kan schieten:

  1. Klik met de rechtermuisknop in het venster Hiërarchie en selecteer 2D Object -> Sprite. Noem het "Target".
  2. In het venster Inspector klikt u op het veld Sprite en selecteert u een sprite voor uw doel.
  3. Voeg een component BoxCollider2D toe aan het doel door op Component toevoegen te klikken en BoxCollider2D te selecteren.

Dupliceer het doel door er met de rechtermuisknop op te klikken en Dupliceren te selecteren. Plaats de doelen rond het scherm.

Stap 5: Omgaan met botsingen

We moeten omgaan met wat er gebeurt als een kanonskogel een doel raakt. Maak een script met de naam "Target" om dit te beheren:

  1. Klik met de rechtermuisknop in de map Assets, selecteer Create -> C# Script en noem deze "Target".
  2. Dubbelklik op het script om het in uw code-editor te openen.
// Target.cs
using UnityEngine;

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

Koppel het Target-script aan alle doelobjecten. Zorg ervoor dat uw kanonskogel-prefab de tag "Cannonball" heeft.

Conclusie

Door deze stappen te volgen, heb je in Unity een eenvoudig kanonspel gemaakt. Je hebt geleerd hoe je een project opzet, een kanon maakt en bestuurt, en doelen toevoegt. Dit project behandelt basisconcepten voor game-ontwikkeling, zoals het maken van objecten, gebruikersinvoer, natuurkunde en botsingsdetectie. Je kunt dit spel verder verbeteren door functies toe te voegen zoals scoren, niveaus en verschillende soorten doelen. Veel plezier met experimenteren en meer leren over Unity!