Unity Basic (1/5): Các khái niệm cơ bản: GameObject, Component, Scene, Prefab… trong Unity3D

Phuongne, Th3 07, 2021

Unity là gì?

Unity3D là một nền tảng phát triển game đa nền tảng phổ biến nhất hiện nay. Nó bao gồm một công cụ phát triển game (game engine) và một môi trường phát triển tích hợp (IDE).

Game engine này cho phép phát triển game trên nền tảng PC, console, android, ios và có thể triển khai cho web.

image.png

Trong bài viết này, chúng ta sẽ tìm hiểu về các thành phần cơ bản trong Unity. Đây là một hệ thống phức tạp, tuy nhiên tôi không giới thiệu quá nhiều tính năng của nó, các bạn có thể tìm hiểu thêm trên trang Unity Learn.

Các khái niệm cơ bản trong Unity

Đây là các thành phần cốt lõi của Unity, và các khái niệm này cũng có thể được áp dụng cho hầu hết các game engine phổ biến hiện nay.

Mỗi hệ thống bao gồm các thành phần nhỏ hơn, và chúng ta sẽ tìm hiểu về chúng trong các bài viết tiếp theo.

1. Project

Khái niệm “Project” bao gồm toàn bộ các thành phần tạo nên một game, bao gồm các mô hình, tài nguyên, kịch bản, v.v. Project được tổ chức theo cấu trúc tương tự với cấu trúc thư mục và tệp tin trên máy tính của bạn.

2. Scenes

Một “Scene” chứa các đối tượng game (game objects) tương tác với thế giới, bao gồm cả nhân vật chính của chúng ta.

Một game có thể bao gồm nhiều scene như trong hình minh họa trên, ví dụ như khi bạn có một trò chơi với nhiều cảnh chuyển đổi, mỗi cảnh chơi sẽ được lưu trong một scene riêng.

3. Packages

Các đối tượng trong package có thể liên quan với nhau, chẳng hạn như các mô hình, kịch bản, vật liệu, v.v.

4. Prefab

“Prefab” là một đối tượng game được lưu trữ để tái sử dụng, thường được sử dụng để tạo nhiều phiên bản của một đối tượng.

Ví dụ, nếu bạn tạo một đối tượng game bao gồm 5 phần, sẽ tốn rất nhiều thời gian nếu bạn phải lắp ráp lại 5 phần đó mỗi khi tạo một đối tượng game mới. Thay vì vậy, bạn có thể tạo một Prefab và tạo ra nhiều phiên bản.

Prefab thường được sử dụng theo 2 cách:

  • Thiết kế cấp độ của trò chơi, bạn có thể tạo một đèn và biến nó thành Prefab, sau đó sử dụng Prefab này để tạo nhiều phiên bản và đặt chúng khắp bản đồ. Nếu bạn muốn thay đổi độ sáng của tất cả các đèn, thay vì chỉnh sửa từng đèn một, bạn chỉ cần chỉnh sửa đèn Prefab.”
  • Cách sử dụng thứ hai: tạo đối tượng game ngay trong trò chơi, giống như trò chơi Flappy Bird chẳng hạn, các cột cây màu xanh xuất hiện liên tục, mỗi lần xuất hiện, bạn đang tạo một phiên bản sao của cột cây.

image.png

5. Game Objects

Các “Game Objects” là tất cả các thành phần trong Scene, có thể nhìn thấy hoặc không thấy.

Nó không chỉ là các đối tượng thực như bàn, ghế, rìu, kiếm mà còn bao gồm các đối tượng hỗ trợ như nguồn âm thanh, máy ảnh, nguồn sáng, v.v. Các đối tượng game rỗng cũng rất hữu ích, đặc biệt trong hệ thống cha-con (bạn có thể xem trong tab Hierarchy).

image.png

Tất cả các đối tượng game (bao gồm cả đối tượng game rỗng) có vị trí, góc quay và tỷ lệ trong thế giới của trò chơi, chúng có thể được di chuyển, quay và co dãn. Lưu ý rằng các yếu tố này sẽ bị ảnh hưởng bởi hệ thống cha-con như hình minh họa.

Bạn có thể tắt (vô hiệu hóa) hoặc bật (kích hoạt) game object tùy ý, và các thành phần tạo nên một GameObject gọi là “Components”.

6. Components

Như đã đề cập ở trên, mỗi đối tượng game được định nghĩa bởi một tập hợp các “component”. Các component này phải liên quan đến các thuộc tính tự nhiên của đối tượng game đó.

Ví dụ, một nguồn sáng, các component của nó phải định nghĩa các thuộc tính như màu sắc, độ sáng, tương phản, v.v. Một đối tượng máy ảnh phải có các thuộc tính như cách tính toán phép chiếu 2D, 3D, giao lộ gần nhất, xa nhất, v.v.

Dưới đây là một ví dụ về các component:

  • “Mesh Filter” và “Mesh Renderer” là các component định nghĩa các mặt bề mặt của đối tượng vật thể 3D.
  • “Rigidbody” là một component dùng để định nghĩa cách mà một đối tượng di chuyển theo “vật lý” trong trò chơi, bao gồm trọng lực, kháng không khí, trọng lượng, v.v.
  • “Collider” là component định nghĩa một khối hộp xung quanh đối tượng để xử lý va chạm với các đối tượng khác có Collider trong cùng cảnh chơi.
  • Vị trí, góc quay và tỷ lệ của một đối tượng game được định nghĩa bởi component có tên gọi là “Transform”.
  • v.v.

Bạn có thể điều chỉnh các thông số của component trong trình chỉnh sửa Unity, trong cửa sổ “Inspector”.

7. Tài nguyên (Assets)

Một “asset” là bất kỳ nguồn tài nguyên nào như âm thanh, hình ảnh, mô hình 3D… mà bạn cần để tạo thành một đối tượng game.

image.png

8. Kịch bản (Scripts)

“Script” là mã nguồn (code) của chúng ta, được sử dụng để định nghĩa hành vi cho các đối tượng game, cũng như để định nghĩa các chức năng. Có rất nhiều loại lớp, phụ thuộc và hành vi mà chúng điều khiển.

Lập trình game thường là dựa trên sự tương tác sự kiện, và một script thường định nghĩa các hàm sử dụng để phản ứng với các sự kiện trong trò chơi. Ví dụ, hàm va chạm sẽ được gọi khi hai đối tượng va chạm với nhau, hàm tăng điểm sẽ được gọi khi người chơi nhặt được đồng xu trong trò chơi,…

Các hàm của script có thể làm các công việc như di chuyển một đối tượng game, tạo/xóa các đối tượng game, gọi các hàm của các đối tượng game khác,… Sau đó, quyền điều khiển được trả về cho hệ thống Unity Engine.

Khuyến cáo

Bài viết được đăng vào năm 2021, chỉ mang tính chất tham khảo.

Bài viết tiếp theo: Giới thiệu Unity Editor

Related Posts