Oprettelse af et Canon-spil i Unity med C#

I denne vejledning vil vi skabe et simpelt Canon-spil ved hjælp af Unity og C#. Du lærer det grundlæggende i at opsætte et Unity-projekt, skabe spilobjekter, håndtere brugerinput og implementere spilmekanik.

Forudsætninger

For at følge med skal du sørge for at have:

  • Unity installeret på din computer (version 20xx.x eller nyere)
  • Grundlæggende forståelse af Unitys interface og sceneopsætning
  • Kendskab til C# programmeringssprog

Opsætning af projektet

Lad os starte med at oprette et nyt Unity-projekt:

  1. Åbn Unity Hub og klik på New for at oprette et nyt projekt.
  2. Vælg en skabelon (3D eller 2D), og navngiv dit projekt (f.eks. CanonGame).
  3. Klik på Create for at oprette projektet.

Oprettelse af Canon GameObject

Dernæst opretter vi Canon-objektet i vores scene:

  1. I Hierarki-panelet skal du højreklikke og vælge Opret tom for at oprette et nyt GameObject.
  2. Omdøb GameObject til "Canon".
  3. Højreklik på "Canon" i hierarkiet og vælg 3D Objekt -> Cylinder for at skabe en cylinderform til vores kanon.
  4. Placer og skaler cylinderen, så den ligner en kanon.

Skrivning af Canon Script i C#

Lad os nu skrive et script til at styre kanonen:

  1. I projektpanelet skal du oprette en ny mappe med navnet "Scripts".
  2. Højreklik på mappen "Scripts" og vælg Create -> C# Script.
  3. Navngiv scriptet "CanonController".
  4. Dobbeltklik på scriptet for at åbne det i din foretrukne kodeeditor.
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)
    }
}

Tilføjelse af funktionalitet til Canon

Lad os tilføje funktionalitet til at rotere og affyre kanonen:

  1. I CanonController scriptet skal du deklarere variabler for at kontrollere kanonrotation og affyring.
  2. I Update-metoden skal du håndtere brugerinput for at rotere kanonen til venstre og højre.
  3. Tilføj en metode til at håndtere affyring af kanonen (f.eks. instansiering af en kanonkugle).
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.");
        }
    }
}

Test og spil spillet

Lad os nu teste og spille vores Canon-spil:

  1. Gem scriptet og gå tilbage til Unity.
  2. Vedhæft CanonController-scriptet til "Canon" GameObject ved at trække det til Inspector-panelet i "Canon" GameObject.
  3. Tryk på Play-knappen i Unity for at køre spillet.
  4. Brug piletasterne eller A/D-tasterne til at rotere kanonen.
  5. Tryk på mellemrumstasten for at udløse kanonen (implementering af denne funktionalitet er valgfri baseret på dit script).

Konklusion

Tillykke! Du har lavet et simpelt Canon-spil i Unity ved hjælp af C#. Du har lært, hvordan du opsætter et Unity-projekt, opretter GameObjects, skriver scripts i C# og implementerer grundlæggende spilmekanik. Herfra kan du udvide og forbedre dit spil yderligere.