Tworzenie prostej gry platformowej 2D w Unity

W tym samouczku stworzymy podstawową platformówkę 2D w Unity. Będzie to wymagało stworzenia postaci gracza, która może się poruszać, skakać i wchodzić w interakcje z platformami. Dodamy również podstawowe elementy gry, takie jak przeszkody i przedmioty kolekcjonerskie.

1. Konfigurowanie projektu

Zacznijmy od utworzenia nowego projektu 2D Unity:

  1. Otwórz Unity i utwórz nowy projekt 2D.
  2. Przejdź do Plik > Nowa scena i wybierz Tryb 2D.
  3. Zapisz scenę jako MainScene.

2. Tworzenie postaci gracza

Najpierw utworzymy prostą postać gracza, używając duszka i dodamy funkcjonalność ruchu:

  1. Kliknij prawym przyciskiem myszy w oknie Hierarchia i wybierz opcję Utwórz pusty. Nadaj temu obiektowi nazwę Odtwarzacz.
  2. Dodaj komponent Sprite Renderer do obiektu Player, klikając Dodaj komponent w Inspektorze.
  3. Wybierz duszka, który będzie postacią, tworząc własnego lub importując zasób 2D z Unity Asset Store.
  4. Dodaj Rigidbody2D i BoxCollider2D do obiektu Player w celu wykrywania fizyki i kolizji.

3. Pisanie skryptu ruchu gracza

Teraz napiszmy skrypt, który pozwoli graczowi poruszać się i skakać. Wykonaj następujące kroki:

  1. Kliknij prawym przyciskiem myszy w oknie Projekt i wybierz Utwórz > Skrypt C#. Nadaj mu nazwę PlayerController.
  2. Dołącz ten skrypt do obiektu Odtwarzacz, przeciągając go z okna Projektu do Odtwarzacza w hierarchii.

Zastąp zawartość skryptu następującą:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float jumpForce = 7f;
    private Rigidbody2D rb;
    private bool isGrounded = true;

    void Start()
    {
        rb = GetComponent();
    }

    void Update()
    {
        // Player movement
        float moveInput = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);

        // Jumping
        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
            isGrounded = false;
        }
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        // Check if player is touching the ground
        if (collision.collider.CompareTag("Ground"))
        {
            isGrounded = true;
        }
    }
}

4. Tworzenie platform i środowisk

Teraz stworzymy platformy, na które gracz będzie mógł wskoczyć:

  1. W hierarchii kliknij prawym przyciskiem myszy i wybierz opcję Utwórz pusty, a następnie nadaj jej nazwę Platforma.
  2. Dodaj BoxCollider2D i Sprite Renderer do platformy.
  3. Wybierz obiekt reprezentujący platformę (np. płaski prostokąt).
  4. Powiel platformę, naciskając klawisze Ctrl+D (lub Cmd+D na komputerze Mac), a następnie rozmieść kopie tak, aby utworzyć poziom.
  5. Oznacz te obiekty jako Ziemia w Inspektorze, aby dostosować logikę skoku gracza.

5. Dodawanie przeszkód

Aby gra była trudniejsza, dodajmy kilka przeszkód:

  • Utwórz kolejny pusty obiekt GameObject i nazwij go Przeszkoda.
  • Dodaj BoxCollider2D i Sprite Renderer do tego obiektu.
  • Wybierz duszka reprezentującego przeszkodę (np. kolec lub przeszkodę).
  • W metodzie gracza OnCollisionEnter2D można wykrywać kolizje z przeszkodami i ponownie uruchamiać grę lub odejmować punkty zdrowia.

6. Dodawanie przedmiotów kolekcjonerskich

Możemy również dodać przedmioty kolekcjonerskie, takie jak monety i ulepszenia:

  • Utwórz kolejny pusty obiekt GameObject i nazwij go Collectible.
  • Dodaj CircleCollider2D (ustaw jako wyzwalacz) i Sprite Renderer, aby reprezentować przedmiot kolekcjonerski.
  • Napisz prosty skrypt wykrywający moment, w którym gracz podniesie przedmiot:
using UnityEngine;

public class Collectible : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            // Add points or other effects here
            Destroy(gameObject); // Remove the collectible from the scene
        }
    }
}

7. Testowanie i ulepszanie gry

Teraz, gdy podstawowe mechanizmy są już na miejscu, możesz przetestować grę, naciskając przycisk Play. Spróbuj dostosować następujące elementy:

  • Zmień wartości moveSpeed i jumpForce, aby dostosować szybkość, z jaką gracz się porusza i skacze.
  • Duplikuj platformy i przeszkody, aby stworzyć różne poziomy.
  • Dodaj elementy tła i dekoracje, aby gra stała się wizualnie atrakcyjniejsza.

8. Ulepszanie platformówki

Aby przenieść swoją platformówkę na wyższy poziom, rozważ dodanie:

  • Animacje dla gracza, takie jak animacje chodzenia i skakania.
  • Efekty dźwiękowe towarzyszące skakaniu, zbieraniu przedmiotów i uderzaniu w przeszkody.
  • Kamera, która podąża za ruchami gracza, zapewniając bardziej dynamiczny obraz gry.

Wniosek

Dzięki tej prostej konfiguracji platformówki 2D masz teraz podstawową strukturę gry, którą można rozszerzyć o więcej funkcji, poziomów i szlifów. Eksperymentuj z różnymi mechanikami i stwórz własną, unikalną platformówkę.