Lag et Canon-spill i Unity med C#

I denne opplæringen skal vi lage et enkelt Canon-spill med Unity og C#. Du vil lære det grunnleggende om å sette opp et Unity-prosjekt, lage spillobjekter, håndtere brukerinndata og implementere spillmekanikk.

Forutsetninger

For å følge med, sørg for at du har:

  • Unity installert på datamaskinen din (versjon 20xx.x eller nyere)
  • Grunnleggende forståelse av Unitys grensesnitt og sceneoppsett
  • Kjennskap til C# programmeringsspråk

Sette opp prosjektet

La oss starte med å sette opp et nytt Unity-prosjekt:

  1. Åpne Unity Hub og klikk på New for å opprette et nytt prosjekt.
  2. Velg en mal (3D eller 2D) og navngi prosjektet ditt (f.eks. CanonGame).
  3. Klikk Create for å opprette prosjektet.

Opprette Canon GameObject

Deretter lager vi Canon-objektet i scenen vår:

  1. I Hierarki-panelet høyreklikker du og velger Create Empty for å opprette et nytt GameObject.
  2. Gi nytt navn til GameObject til "Canon".
  3. Høyreklikk på "Canon" i hierarkiet og velg 3D Objekt -> Sylinder for å lage en sylinderform for vår kanon.
  4. Plasser og skaler sylinderen slik at den ligner en kanon.

Skrive Canon Script i C#

La oss nå skrive et skript for å kontrollere kanonen:

  1. I prosjektpanelet oppretter du en ny mappe med navnet "Scripts".
  2. Høyreklikk på "Scripts"-mappen og velg Create -> C# Script.
  3. Gi skriptet et navn "CanonController".
  4. Dobbeltklikk på skriptet for å åpne det i ditt foretrukne koderedigeringsprogram.
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)
    }
}

Legge til funksjonalitet til Canon

La oss legge til funksjonalitet for å rotere og avfyre ​​kanonen:

  1. I CanonController-skriptet erklærer du variabler for å kontrollere kanonrotasjon og avfyring.
  2. I Update-metoden, håndtere brukerinndata for å rotere kanonen til venstre og høyre.
  3. Legg til en metode for å håndtere avfyring av kanonen (f.eks. instansiere en kanonkule).
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.");
        }
    }
}

Teste og spille spillet

La oss nå teste og spille Canon-spillet vårt:

  1. Lagre skriptet og gå tilbake til Unity.
  2. Fest CanonController-skriptet til "Canon" GameObject ved å dra det til Inspector-panelet i "Canon" GameObject.
  3. Trykk på Play-knappen i Unity for å kjøre spillet.
  4. Bruk piltastene eller A/D-tastene for å rotere kanonen.
  5. Trykk på mellomromstasten for å avfyre ​​kanonen (implementering av denne funksjonaliteten er valgfri basert på skriptet ditt).

Konklusjon

Gratulerer! Du har laget et enkelt Canon-spill i Unity ved å bruke C#. Du har lært hvordan du setter opp et Unity-prosjekt, lager GameObjects, skriver skript i C# og implementerer grunnleggende spillmekanikk. Herfra kan du utvide og forbedre spillet ditt ytterligere.