Een Canon-game maken in Unity met C#

In deze tutorial maken we een eenvoudige Canon-game met Unity en C#. Je leert de basisprincipes van het opzetten van een Unity-project, het maken van game-objecten, het verwerken van gebruikersinvoer en het implementeren van game-mechanica.

Vereisten

Om mee te kunnen doen, moet u het volgende bij de hand hebben:

  • Unity geïnstalleerd op uw computer (versie 20xx.x of hoger)
  • Basiskennis van de interface en scène-instellingen van Unity
  • Kennis van de programmeertaal C#

Het project opzetten

Laten we beginnen met het opzetten van een nieuw Unity-project:

  1. Open Unity Hub en klik op Nieuw om een ​​nieuw project te maken.
  2. Kies een sjabloon (3D of 2D) en geef uw project een naam (bijvoorbeeld CanonGame).
  3. Klik op Aanmaken om het project aan te maken.

Het Canon GameObject maken

Vervolgens maken we het Canon-object in onze scène:

  1. Klik met de rechtermuisknop in het paneel Hiërarchie en kies Leeg maken om een ​​nieuw GameObject te maken.
  2. Hernoem het GameObject naar "Canon".
  3. Klik met de rechtermuisknop op "Canon" in de hiërarchie en kies 3D-object -> Cilinder om een ​​cilindervorm voor onze canon te maken.
  4. Plaats en schaal de cilinder zodat hij op een kanon lijkt.

Canon Script schrijven in C#

Laten we nu een script schrijven om de canon te besturen:

  1. Maak in het Project-paneel een nieuwe map met de naam "Scripts".
  2. Klik met de rechtermuisknop op de map "Scripts" en kies Create -> C# Script.
  3. Noem het script "CanonController".
  4. Dubbelklik op het script om het te openen in de code-editor van uw voorkeur.
using UnityEngine;

public class CanonController : MonoBehaviour
{
    // Variables for canon rotation and firing logic

    void Start()
    {
        // Initialization code
    }

    void Update()
    {
        // Update code (e.g., check for user input)
    }
}

Functionaliteit toevoegen aan de Canon

Laten we functionaliteit toevoegen om het kanon te roteren en af ​​te vuren:

  1. Declareer in het script CanonController variabelen om de rotatie en het afvuren van het kanon te regelen.
  2. Bij de Update-methode verwerkt u gebruikersinvoer om de canon naar links en rechts te draaien.
  3. Voeg een methode toe om het kanon af te vuren (bijvoorbeeld het instantiëren van een kanonskogel).
using UnityEngine;

public class CanonController : MonoBehaviour
{
    // Define variables for canon rotation speed
    public float rotationSpeed = 5f;

    // Define variables for cannonball prefab and firing position
    public GameObject cannonballPrefab;  // Assign in Unity Editor
    public Transform firePoint;  // Assign fire point transform in Unity Editor

    void Update()
    {
        // Handle canon rotation based on user input
        float horizontalInput = Input.GetAxis("Horizontal");
        transform.Rotate(Vector3.up, horizontalInput * rotationSpeed * Time.deltaTime);

        // Handle canon firing when spacebar is pressed
        if (Input.GetKeyDown(KeyCode.Space))
        {
            FireCanon();
        }
    }

    void FireCanon()
    {
        // Check if cannonball prefab and fire point are assigned
        if (cannonballPrefab != null && firePoint != null)
        {
            // Instantiate a cannonball at the fire point position and rotation
            GameObject cannonball = Instantiate(cannonballPrefab, firePoint.position, firePoint.rotation);
            
            // Add force to the cannonball (example: forward direction with speed)
            float cannonballSpeed = 10f;
            cannonball.GetComponent<Rigidbody>().velocity = firePoint.forward * cannonballSpeed;
        }
        else
        {
            Debug.LogError("Cannonball prefab or fire point is not assigned.");
        }
    }
}

Het spel testen en spelen

Laten we nu ons Canon-spel testen en spelen:

  1. Sla het script op en ga terug naar Unity.
  2. Koppel het CanonController-script aan het "Canon" GameObject door het naar het Inspector-paneel van het "Canon" GameObject te slepen.
  3. Klik op de Play-knop in Unity om het spel te starten.
  4. Gebruik de pijltjestoetsen of de toetsen A/D om het kanon te draaien.
  5. Druk op de spatiebalk om de canon af te vuren (het implementeren van deze functionaliteit is optioneel op basis van uw script).

Conclusie

Gefeliciteerd! Je hebt een eenvoudige Canon-game gemaakt in Unity met behulp van C#. Je hebt geleerd hoe je een Unity-project opzet, GameObjects maakt, scripts schrijft in C# en basisspelmechanismen implementeert. Vanaf hier kun je je game verder uitbreiden en verbeteren.