Skapa ett Canon-spel i Unity med C#

I den här handledningen kommer vi att skapa ett enkelt Canon-spel med Unity och C#. Du kommer att lära dig grunderna för att ställa in ett Unity-projekt, skapa spelobjekt, hantera användarinput och implementera spelmekanik.

Förutsättningar

För att följa med, se till att du har:

  • Unity installerad på din dator (version 20xx.x eller senare)
  • Grundläggande förståelse för Unitys gränssnitt och scenuppsättning
  • Kännedom om programmeringsspråket C#

Konfigurera projektet

Låt oss börja med att skapa ett nytt Unity-projekt:

  1. Öppna Unity Hub och klicka på New för att skapa ett nytt projekt.
  2. Välj en mall (3D eller 2D) och namnge ditt projekt (t.ex. CanonGame).
  3. Klicka på Skapa för att skapa projektet.

Skapa Canon GameObject

Därefter skapar vi Canon-objektet i vår scen:

  1. I hierarkipanelen högerklickar du och väljer Skapa tomt för att skapa ett nytt GameObject.
  2. Byt namn på GameObject till "Canon".
  3. Högerklicka på "Canon" i hierarkin och välj 3D Object -> Cylinder för att skapa en cylinderform för vår kanon.
  4. Placera och skala cylindern så att den liknar en kanon.

Skriver Canon Script i C#

Låt oss nu skriva ett skript för att styra kanonen:

  1. Skapa en ny mapp med namnet "Scripts" i projektpanelen.
  2. Högerklicka på mappen "Scripts" och välj Create -> C# Script.
  3. Namnge skriptet "CanonController".
  4. Dubbelklicka på skriptet för att öppna det i din föredragna kodredigerare.
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)
    }
}

Lägga till funktionalitet till Canon

Låt oss lägga till funktionalitet för att rotera och avfyra kanonen:

  1. I CanonController-skriptet, deklarera variabler för att styra kanonrotation och avfyring.
  2. I metoden Update, hantera användarinmatning för att rotera kanonen åt vänster och höger.
  3. Lägg till en metod för att hantera avfyring av kanonen (t.ex. instansiera en kanonkula).
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.");
        }
    }
}

Testa och spela spelet

Nu ska vi testa och spela vårt Canon-spel:

  1. Spara skriptet och gå tillbaka till Unity.
  2. Bifoga CanonController-skriptet till "Canon" GameObject genom att dra det till Inspector-panelen i "Canon" GameObject.
  3. Tryck på Play-knappen i Unity för att köra spelet.
  4. Använd piltangenterna eller A/D-tangenterna för att rotera kanonen.
  5. Tryck på mellanslagstangenten för att avfyra kanonen (att implementera denna funktion är valfritt baserat på ditt skript).

Slutsats

Grattis! Du har skapat ett enkelt Canon-spel i Unity med C#. Du har lärt dig hur du ställer in ett Unity-projekt, skapar GameObjects, skriver skript i C# och implementerar grundläggande spelmekanik. Härifrån kan du utöka och förbättra ditt spel ytterligare.