Crearea unui platformer 2D simplu în Unity

În acest tutorial, vom crea un platformer 2D de bază în Unity. Acest lucru va implica crearea unui personaj jucător care se poate mișca, sări și interacționa cu platformele. Vom adăuga, de asemenea, câteva elemente de bază ale jocului, cum ar fi obstacole și obiecte de colecție.

1. Configurarea Proiectului

Să începem prin a configura un nou proiect 2D Unity:

  1. Deschideți Unity și creați un nou proiect 2D.
  2. Accesați Fișier > Scenă nouă și selectați Modul 2D.
  3. Salvați scena ca MainScene.

2. Crearea Personajului Jucător

Mai întâi vom crea un personaj simplu jucător folosind un sprite și vom adăuga funcționalitate de mișcare:

  1. Faceți clic dreapta în fereastra Hierarchy și selectați Create Empty. Denumiți acest obiect Player.
  2. Adăugați o componentă Sprite Renderer la obiectul Player făcând clic pe Add Component în Inspector.
  3. Selectați un sprite pe care să îl utilizați ca personaj, fie creându-vă propriul, fie importând un material 2D din Unity Asset Store.
  4. Adăugați un Rigidbody2D și un BoxCollider2D la obiectul Player pentru fizică și detectarea coliziunilor.

3. Scrierea scriptului de mișcare a jucătorului

Acum, să scriem un script pentru a permite jucătorului să se miște și să sară. Urmați acești pași:

  1. Faceți clic dreapta în fereastra Project și alegeți Create > C# Script. Numele-i PlayerController.
  2. Atașați acest script la obiectul Player trăgându-l din fereastra Proiect în Player în Ierarhie.

Înlocuiți conținutul scriptului cu următoarele:

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. Crearea de platforme și mediu

Acum vom crea platforme pe care jucătorul poate sări:

  1. În Ierarhie, faceți clic dreapta și selectați Create Empty, apoi denumește-l Platform.
  2. Adăugați un BoxCollider2D și Sprite Renderer pe platformă.
  3. Selectați un sprite pentru platformă (de exemplu, un dreptunghi plat).
  4. Duplicați platforma apăsând Ctrl+D (sau Cmd+D pe Mac) și poziționați copiile pentru a crea un nivel.
  5. Etichetați aceste obiecte ca Ground în Inspector pentru logica săriturii jucătorului.

5. Adăugarea de obstacole

Pentru a face jocul mai provocator, să adăugăm câteva obstacole:

  • Creați un alt GameObject gol și denumiți-l Obstacle.
  • Adăugați un BoxCollider2D și Sprite Renderer la acest obiect.
  • Alegeți un sprite pentru obstacol (de exemplu, un vârf sau un pericol).
  • În metoda OnCollisionEnter2D a jucătorului, puteți detecta coliziunile cu obstacole și puteți reporni jocul sau puteți deduce sănătatea.

6. Adăugarea obiectelor de colecție

Putem adăuga, de asemenea, obiecte de colecție, cum ar fi monede sau power-up-uri:

  • Creează un alt GameObject gol și numește-l Collectible.
  • Adăugați un CircleCollider2D (setați-l ca declanșator) și un Sprite Renderer pentru a reprezenta obiectul de colecție.
  • Scrieți un script simplu pentru a detecta când jucătorul colectează un articol:
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. Testarea și modificarea jocului

Acum că mecanismele de bază sunt la locul lor, puteți testa jocul apăsând butonul Play. Încercați să reglați următoarele:

  • Modificați valorile moveSpeed și jumpForce pentru a modifica cât de repede se mișcă și sare jucătorul.
  • Duplicați platforme și obstacole pentru a crea diferite niveluri.
  • Adăugați elemente de fundal sau decorațiuni pentru a face jocul atrăgător din punct de vedere vizual.

8. Îmbunătățirea platformei

Pentru a vă duce jocul de platformă la următorul nivel, luați în considerare adăugarea:

  • Animații pentru jucător, cum ar fi animații de mers și sărituri.
  • Efecte sonore pentru sărituri, colectare de obiecte și lovire de obstacole.
  • O cameră care urmărește mișcările jucătorului pentru o vedere mai dinamică a jocului.

Concluzie

Cu această configurație simplă de platformă 2D, aveți acum o structură de bază a jocului, care poate fi extinsă cu mai multe funcții, niveluri și îmbunătățiri. Experimentează cu diferite mecanici și creează-ți propriul joc de platforme unic.