Tạo một nền tảng 2D đơn giản trong Unity

Trong hướng dẫn này, chúng ta sẽ tạo một trò chơi nền tảng 2D cơ bản trong Unity. Điều này sẽ liên quan đến việc tạo một nhân vật người chơi có thể di chuyển, nhảy và tương tác với các nền tảng. Chúng ta cũng sẽ thêm một số yếu tố trò chơi cơ bản như chướng ngại vật và đồ sưu tầm.

1. Thiết lập dự án

Chúng ta hãy bắt đầu bằng cách thiết lập một dự án Unity 2D mới:

  1. Mở Unity và tạo một dự án 2D mới.
  2. Vào File > New Scene và chọn Chế độ 2D.
  3. Lưu cảnh dưới dạng MainScene.

2. Tạo nhân vật người chơi

Đầu tiên chúng ta sẽ tạo một nhân vật người chơi đơn giản bằng cách sử dụng một hình ảnh động và thêm chức năng di chuyển:

  1. Nhấp chuột phải vào cửa sổ Hierarchy và chọn Create Empty. Đặt tên cho đối tượng này là Player.
  2. Thêm thành phần Sprite Renderer vào đối tượng Player bằng cách nhấp vào Add Component trong Inspector.
  3. Chọn một sprite để sử dụng làm nhân vật, bằng cách tự tạo hoặc nhập nội dung 2D từ Unity Asset Store.
  4. Thêm Rigidbody2DBoxCollider2D vào đối tượng Player để phát hiện va chạm và hiệu ứng vật lý.

3. Viết kịch bản di chuyển của người chơi

Bây giờ, hãy viết một tập lệnh cho phép người chơi di chuyển và nhảy. Thực hiện theo các bước sau:

  1. Nhấp chuột phải vào cửa sổ Project và chọn Create > C# Script. Đặt tên là PlayerController.
  2. Đính kèm tập lệnh này vào đối tượng Player bằng cách kéo nó từ cửa sổ Project vào Player trong Hierarchy.

Thay thế nội dung của tập lệnh bằng nội dung sau:

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. Tạo nền tảng và môi trường

Bây giờ chúng ta sẽ tạo ra các nền tảng để người chơi nhảy lên:

  1. Trong Hierarchy, nhấp chuột phải và chọn Create Empty, sau đó đặt tên là Platform.
  2. Thêm BoxCollider2DSprite Renderer vào nền tảng.
  3. Chọn một hình ảnh động cho nền tảng (ví dụ: hình chữ nhật phẳng).
  4. Nhân đôi nền tảng bằng cách nhấn Ctrl+D (hoặc Cmd+D trên máy Mac) và định vị các bản sao để tạo thành một mặt phẳng.
  5. Đánh dấu các đối tượng này là Mặt đất trong Thanh tra để biết logic nhảy của người chơi.

5. Thêm chướng ngại vật

Để làm cho trò chơi trở nên thử thách hơn, chúng ta hãy thêm một số chướng ngại vật:

  • Tạo một GameObject trống khác và đặt tên là Obstacle.
  • Thêm BoxCollider2DSprite Renderer vào đối tượng này.
  • Chọn một hình ảnh động cho chướng ngại vật (ví dụ: gai nhọn hoặc mối nguy hiểm).
  • Trong phương thức OnCollisionEnter2D của người chơi, bạn có thể phát hiện va chạm với chướng ngại vật và khởi động lại trò chơi hoặc trừ máu.

6. Thêm đồ sưu tầm

Chúng ta cũng có thể thêm đồ sưu tầm, chẳng hạn như tiền xu hoặc vật phẩm tăng sức mạnh:

  • Tạo một GameObject trống khác và đặt tên là Collectible.
  • Thêm CircleCollider2D (đặt làm trình kích hoạt) và Sprite Renderer để biểu thị vật phẩm sưu tầm.
  • Viết một tập lệnh đơn giản để phát hiện thời điểm người chơi thu thập một vật phẩm:
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. Kiểm tra và điều chỉnh trò chơi

Bây giờ cơ chế cơ bản đã sẵn sàng, bạn có thể kiểm tra trò chơi bằng cách nhấn nút Play. Hãy thử điều chỉnh như sau:

  • Sửa đổi các giá trị moveSpeedjumpForce để điều chỉnh tốc độ di chuyển và nhảy của người chơi.
  • Nhân đôi các nền tảng và chướng ngại vật để tạo ra nhiều cấp độ khác nhau.
  • Thêm các yếu tố nền hoặc đồ trang trí để làm cho trò chơi hấp dẫn hơn về mặt hình ảnh.

8. Nâng cao Nền tảng

Để đưa trò chơi nền tảng của bạn lên một tầm cao mới, hãy cân nhắc thêm:

  • Hoạt ảnh cho người chơi, chẳng hạn như hoạt ảnh đi bộ và nhảy.
  • Hiệu ứng âm thanh khi nhảy, thu thập vật phẩm và va vào chướng ngại vật.
  • Một camera theo dõi chuyển động của người chơi để có góc nhìn sống động hơn về trò chơi.

Phần kết luận

Với thiết lập trò chơi nền tảng 2D đơn giản này, giờ đây bạn đã có cấu trúc trò chơi cơ bản có thể mở rộng thêm nhiều tính năng, cấp độ và độ hoàn thiện. Thử nghiệm với các cơ chế khác nhau và tạo ra trò chơi nền tảng độc đáo của riêng bạn.