Tworzenie gry Canon w Unity w języku C#

W tym samouczku utworzymy prostą grę Canon przy użyciu Unity i C#. Poznasz podstawy konfigurowania projektu Unity, tworzenia obiektów gry, obsługi danych wejściowych użytkownika i implementowania mechaniki gry.

Wymagania wstępne

Aby kontynuować, upewnij się, że masz:

  • Unity zainstalowany na twoim komputerze (wersja 20xx.x lub nowsza)
  • Podstawowa znajomość interfejsu Unity i konfiguracji scen
  • Znajomość języka programowania C#

Konfigurowanie projektu

Zacznijmy od skonfigurowania nowego projektu Unity:

  1. Otwórz Unity Hub i kliknij New, aby utworzyć nowy projekt.
  2. Wybierz szablon (3D lub 2D) i nazwij swój projekt (np. CanonGame).
  3. Kliknij Utwórz, aby utworzyć projekt.

Tworzenie obiektu Canon GameObject

Następnie utworzymy obiekt Canon w naszej scenie:

  1. W panelu Hierarchia kliknij prawym przyciskiem myszy i wybierz Utwórz puste, aby utworzyć nowy obiekt GameObject.
  2. Zmień nazwę GameObject na "Canon".
  3. Kliknij prawym przyciskiem myszy "Canon" w hierarchii i wybierz Obiekt 3D -> Cylinder, aby utworzyć kształt cylindra dla naszego kanonu.
  4. Ustaw i przeskaluj cylinder tak, aby przypominał kanon.

Pisanie skryptu Canon w języku C#

Napiszmy teraz skrypt kontrolujący kanon:

  1. W panelu Projekt utwórz nowy folder o nazwie "Scripts".
  2. Kliknij prawym przyciskiem myszy na folder "Scripts" i wybierz Utwórz -> Skrypt C#.
  3. Nadaj skryptowi nazwę "CanonController".
  4. Kliknij dwukrotnie skrypt, aby otworzyć go w preferowanym edytorze kodu.
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)
    }
}

Dodawanie funkcjonalności do Canona

Dodajmy funkcjonalność obracania i odpalania kanonu:

  1. W skrypcie CanonController zadeklaruj zmienne sterujące rotacją i strzelaniem kanonu.
  2. W metodzie Update obsłuż dane wejściowe użytkownika, aby obrócić kanon w lewo i prawo.
  3. Dodaj metodę obsługującą wystrzelenie armaty (np. utworzenie instancji kuli armatniej).
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.");
        }
    }
}

Testowanie i granie w grę

Teraz przetestujmy i zagrajmy w naszą grę Canon:

  1. Zapisz skrypt i wróć do Unity.
  2. Dołącz skrypt CanonController do obiektu "Canon" GameObject, przeciągając go na panel Inspektora obiektu "Canon" GameObject.
  3. Naciśnij przycisk Graj w Unity, aby uruchomić grę.
  4. Użyj klawiszy strzałek lub klawiszy A/D, aby obrócić kanon.
  5. Naciśnij spację, aby uruchomić kanon (implementacja tej funkcji jest opcjonalna w zależności od skryptu).

Wniosek

Gratulacje! Stworzyłeś prostą grę Canon w Unity, używając C#. Nauczyłeś się, jak skonfigurować projekt Unity, tworzyć GameObjects, pisać skrypty w C# i implementować podstawowe mechanizmy gry. Stąd możesz dalej rozwijać i ulepszać swoją grę.