2. Tạo dự án đầu tiên
Ở bài học trước, chúng ta đã thiết lập được môi trường để lập trình.
Phần này, chúng ta bắt đầu trải nghiệm bằng cách tạo dự án game đầu tiên.
Dự án đầu tiên sẽ khá đơn giản, nhưng sẽ giúp bạn có cảm giác thú vị, vì nó là những bước chân đầu tiên, bước vào lĩnh vực làm game.
Chương trình đầu tiên, có tên gọi là "Hello World", nó chỉ là một đoạn mã C# đơn giản trong Unity để hiển thị thông báo.
2.1 Chương trình “Hello World”
Chương trình Unity được xây dựng dựa trên các Component (Thành phần). Script C# (mã nguồn C#) của bạn chính là một loại Component được gắn vào một GameObject (Đối tượng trò chơi) để điều khiển hành vi của đối tượng.
Bước 1: Tạo dự án và Scene mới
- Mở Unity Hub. Unity Hub là công cụ để quản lý các dự án (chương trình của bạn). Do vậy bạn sẽ sử dụng Unity Hub để tạo chương trình. Bạn sẽ được yêu cầu đăng nhập bằng tài khoản của bạn trên Unity Hub.- Nhấn nút New Project
- Chọn một template, ví dụ: Core > Universal 2D
- Đặt tên cho dự án của bạn (ví dụ: FirstUnityProject)
- Nhấn Create Project
- Khi Unity Editor mở ra, bạn đang ở trong một Scene (Khung cảnh) mặc định
Bước 2: Tạo Script C#
- Trong cửa sổ Project (thường nằm ở dưới cùng), di chuyển đến thư mục Assets. Trong Unity, Assets nghĩa là Tài sản, là bất cứ thứ gì, được sử dụng để tạo ra một game, ví dụ: hình ảnh, âm thanh, giao diện, mã nguồn.
- Nhấp chuột phải vào một vùng trống trong thư mục Assets, chọn Create > Scripting > Empty C# Script. Script có nghĩa là đoạn mã nguồn, viết bằng một ngôn ngữ lập trình, ví dụ C#.
- Đặt tên cho script của bạn là FirstScript.
- Bấm đúp vào script FirstScript để mở nó trong VS Code (hoặc IDE mà bạn đã cài đặt)
Bước 3: Viết đoạn mã nguồn
- Thay thế nội dung mặc định của script FirstScript (tập tin FirstScript.cs) bằng đoạn mã sau:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstScript : MonoBehaviour
{
// Hàm này được gọi một lần duy nhất khi script được kích hoạt.
void Start()
{
Debug.Log("Chào mừng đến với Unity, chương trình đầu tiên của tôi!");
}
}
- Lưu lại tập tin FirstScript.cs.
Bước 4: Gắn Script vào GameObject
Để chạy script, nó phải được gắn vào một đối tượng trong Scene.
- Quay lại Unity Editor
- Trong cửa sổ Hierarchy (thường nằm bên trái), chuột phải vào Main Camera > chọn Create Empty. Hệ thống sẽ tạo ra một GameObject mới, bạn đặt tên cho nó là GameManager.
- Kéo script FirstScript từ cửa sổ Project và thả vào GameObject GameManager (hoặc Main Camera) trong cửa sổ Hierarchy
Bước 5: Chạy chương trình
- Nhấn nút Play (biểu tượng ▶) ở giữa, trên cùng của Unity Editor để chạy game
- Theo dõi cửa sổ Console (thường nằm bên cạnh Project hoặc tab riêng)
- Bạn sẽ thấy thông báo: "Chào mừng đến với Unity, chương trình đầu tiên của tôi!" xuất hiện ngay lập tức
- Nhấn nút Play lần nữa để dừng game.
Giải thích đoạn mã nguồn
Đoạn mã C# trong Unity kế thừa từ lớp cơ sở MonoBehaviour, cho phép nó tương tác với engine Unity thông qua các hàm đặc biệt của Lifecycle Methods. Chúng ta sẽ tìm hiểu về Lifecycle Methods ở phần sau.
2.2 Bài tập và câu hỏi
Bài tập 2a. Viết và chạy chương trình “Hello World”.
Câu hỏi 2.1 Để viết và chạy chương trình “Hello World”, bạn cần sử dụng các chương trình nào? Phát biểu nào không đúng?
A. Unity hub để đăng nhập vào hệ thống và tạo dự án
B. Unity Editor để tạo các thành phần của dự án (ví dụ tập tin mã nguồn), dịch và chạy dự án
C. VS Code (hoặc một IDE) để viết và sửa mã nguồn
D. Microsoft Word để viết và sửa mã nguồn
Câu hỏi 2.2 Thư viện UnityEngine dùng để là gì? Phát biểu nào không đúng?
A. Để sử dụng hàm Debug.Log
B. Để sử dụng được lớp MonoBehaviour
C. Để tạo tài khoản người dùng
D. Là thư viện, chứa các lớp cốt lõi của Unity
Câu hỏi 2.3 Phát biểu về hàm void Start() trong lập trình game với Unity, phát biểu nào không đúng?
A. Hàm này được Unity gọi duy nhất một lần ngay trước khi khung hình đầu tiên của game được hiển thị, sau khi đối tượng đã được tạo
B. Được gọi đầu tiên, là đầu vào (entry point) khi chạy chương trình game
C. Được gọi sau tất cả các hàm Awake() của mọi script, đảm bảo các đối tượng khác đã hoàn tất quá trình khởi tạo trước khi tương tác
D. Đây là nơi lý tưởng để thiết lập ban đầu (ví dụ: khởi tạo điểm số, vị trí)





