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:
- Otwórz Unity Hub i kliknij New, aby utworzyć nowy projekt.
- Wybierz szablon (3D lub 2D) i nazwij swój projekt (np. CanonGame).
- Kliknij Utwórz, aby utworzyć projekt.
Tworzenie obiektu Canon GameObject
Następnie utworzymy obiekt Canon w naszej scenie:
- W panelu Hierarchia kliknij prawym przyciskiem myszy i wybierz Utwórz puste, aby utworzyć nowy obiekt GameObject.
- Zmień nazwę GameObject na "Canon".
- Kliknij prawym przyciskiem myszy "Canon" w hierarchii i wybierz Obiekt 3D -> Cylinder, aby utworzyć kształt cylindra dla naszego kanonu.
- Ustaw i przeskaluj cylinder tak, aby przypominał kanon.
Pisanie skryptu Canon w języku C#
Napiszmy teraz skrypt kontrolujący kanon:
- W panelu Projekt utwórz nowy folder o nazwie "Scripts".
- Kliknij prawym przyciskiem myszy na folder "Scripts" i wybierz Utwórz -> Skrypt C#.
- Nadaj skryptowi nazwę "CanonController".
- 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:
- W skrypcie
CanonController
zadeklaruj zmienne sterujące rotacją i strzelaniem kanonu. - W metodzie
Update
obsłuż dane wejściowe użytkownika, aby obrócić kanon w lewo i prawo. - 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:
- Zapisz skrypt i wróć do Unity.
- Dołącz skrypt
CanonController
do obiektu "Canon" GameObject, przeciągając go na panel Inspektora obiektu "Canon" GameObject. - Naciśnij przycisk Graj w Unity, aby uruchomić grę.
- Użyj klawiszy strzałek lub klawiszy A/D, aby obrócić kanon.
- 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ę.