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:
- Otwórz Unity i utwórz nowy projekt 2D.
- Przejdź do Plik > Nowa scena i wybierz Tryb 2D.
- Zapisz scenę jako MainScene.
2. Tworzenie postaci gracza
Najpierw utworzymy prostą postać gracza, używając duszka i dodamy funkcjonalność ruchu:
- Kliknij prawym przyciskiem myszy w oknie Hierarchia i wybierz opcję Utwórz pusty. Nadaj temu obiektowi nazwę Odtwarzacz.
- Dodaj komponent Sprite Renderer do obiektu Player, klikając Dodaj komponent w Inspektorze.
- Wybierz duszka, który będzie postacią, tworząc własnego lub importując zasób 2D z Unity Asset Store.
- 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:
- Kliknij prawym przyciskiem myszy w oknie Projekt i wybierz Utwórz > Skrypt C#. Nadaj mu nazwę PlayerController.
- 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ć:
- W hierarchii kliknij prawym przyciskiem myszy i wybierz opcję Utwórz pusty, a następnie nadaj jej nazwę Platforma.
- Dodaj BoxCollider2D i Sprite Renderer do platformy.
- Wybierz obiekt reprezentujący platformę (np. płaski prostokąt).
- Powiel platformę, naciskając klawisze Ctrl+D (lub Cmd+D na komputerze Mac), a następnie rozmieść kopie tak, aby utworzyć poziom.
- 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ę.