Jak stworzyć grę Cannon w Unity

Tworzenie gry armatniej w Unity to świetny sposób na poznanie podstaw tworzenia gier. W tym samouczku stworzymy prostą grę, w której gracz może celować i strzelać z armaty, aby trafiać w cele. Omówimy konfigurowanie projektu, tworzenie i kontrolowanie armaty oraz dodawanie celów.

Krok 1: Konfiguracja projektu

Najpierw otwórz Unity i utwórz nowy projekt 2D. Nazwij swój projekt "CannonGame". Po utworzeniu projektu znajdziesz się w głównym oknie edytora Unity.

Krok 2: Tworzenie armaty

Potrzebujemy wizualnej reprezentacji armaty. Możesz stworzyć prostego prostokątnego duszka, który będzie działał jak twoja armata. Aby to zrobić:

  1. Kliknij prawym przyciskiem myszy okno Hierarchy i wybierz Utwórz puste. Nazwij to "Cannon".
  2. Kliknij prawym przyciskiem myszy obiekt "Cannon" i wybierz Obiekt 2D -> Sprite. Nazwij to "CannonSprite".
  3. W oknie Inspector kliknij pole Sprite i wybierz duszka dla swojej armaty.

Ustaw działo na dole ekranu, ustawiając jego położenie na (0, -4, 0) w komponencie Transform.

Teraz utwórz skrypt sterujący armatą. Kliknij prawym przyciskiem myszy folder Assets, wybierz Utwórz -> C# Script i nadaj mu nazwę "CannonController". Kliknij dwukrotnie skrypt, aby otworzyć go w edytorze kodu.

// CannonController.cs
using UnityEngine;

public class CannonController : MonoBehaviour
{
    public GameObject cannonballPrefab;
    public float shootForce = 700f;

    void Update()
    {
        Aim();
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Aim()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
        transform.up = direction;
    }

    void Shoot()
    {
        GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
        Rigidbody2D rb = cannonball.GetComponent();
        rb.AddForce(transform.up * shootForce);
    }
}

Krok 3: Tworzenie kuli armatniej

Musimy stworzyć kulę armatnią, aby armata mogła wystrzelić. Oto jak:

  1. Kliknij prawym przyciskiem myszy okno Hierarchy i wybierz Obiekt 2D -> Sprite. Nazwij to "Cannonball".
  2. W oknie Inspector kliknij pole Sprite i wybierz duszka dla swojej kuli armatniej.
  3. Dodaj komponent Rigidbody2D do kuli armatniej, klikając Add Component i wybierając Rigidbody2D.
  4. Dodaj komponent CircleCollider2D do kuli armatniej, klikając Add Component i wybierając CircleCollider2D.

Następnie przeciągnij kulę armatnią z Hierarchy do folderu Assets, aby utworzyć prefabrykat. Ten prefabrykat będzie używany przez armatę do strzelania kulami armatnimi.

W oknie Inspector skryptu CannonController (dołączonego do obiektu Cannon) ustaw pole CannonballPrefab na prefabrykat kuli armatniej.

Krok 4: Tworzenie celów

Dodajmy kilka celów, do których gracz będzie strzelał:

  1. Kliknij prawym przyciskiem myszy okno Hierarchy i wybierz Obiekt 2D -> Sprite. Nazwij to "Target".
  2. W oknie Inspector kliknij pole Sprite i wybierz duszka dla swojego celu.
  3. Dodaj komponent BoxCollider2D do celu, klikając Add Component i wybierając BoxCollider2D.

Zduplikuj cel, klikając go prawym przyciskiem myszy i wybierając Duplikuj. Rozmieść cele na ekranie.

Krok 5: Obsługa kolizji

Musimy sobie poradzić z tym, co się stanie, gdy kula armatnia trafi w cel. Utwórz skrypt o nazwie "Target", aby tym zarządzać:

  1. Kliknij prawym przyciskiem myszy folder Assets, wybierz Utwórz -> C# Script i nadaj mu nazwę "Target".
  2. Kliknij dwukrotnie skrypt, aby otworzyć go w edytorze kodu.
// Target.cs
using UnityEngine;

public class Target : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Cannonball"))
        {
            Destroy(gameObject);
        }
    }
}

Dołącz skrypt Target do wszystkich obiektów docelowych. Upewnij się, że prefabrykat kuli armatniej ma znacznik "Cannonball".

Wniosek

Wykonując poniższe kroki, stworzyłeś prostą grę armatnią w Unity. Nauczyłeś się, jak przygotować projekt, stworzyć armatę i sterować nią oraz dodawać cele. Projekt ten obejmuje podstawowe koncepcje tworzenia gier, takie jak tworzenie obiektów, wprowadzanie danych przez użytkownika, fizyka i wykrywanie kolizji. Możesz jeszcze bardziej ulepszyć tę grę, dodając funkcje takie jak punktacja, poziomy i różne typy celów. Miłej zabawy podczas eksperymentowania i zdobywania wiedzy o Unity!