



















Preview text:
lOMoAR cPSD| 58737056
BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÁO CÁO TIỂU LUẬN 3
Môn học: Lập trình game cơ bản
Đề tài: Tìm hiểu về G ame Engine Unity Nhóm: 01 Thành viên: Phan Thanh Tú - B20DCPT177 Nguyễn Nhất Vương - B20DCPT229 Phạm Đắc Hiếu - B20DCPT085 Hà Nội - 2023 lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1 MỤC LỤC
DANH MỤC HÌNH ẢNH ......................................................................................................... 1
MỞ ĐẦU ..................................................................................................................................... 3
1. Tổng quan về Unity ................................................................................................................. 4
2. Lịch sử về Unity ...................................................................................................................... 5
3. Kiến thức cơ bản về Unity: ...................................................................................................... 5
4. Lập trình trong Unity: ............................................................................................................ 15
5. Thiết kế game trong Unity: .................................................................................................... 27
6. UI và UX trong Unity: ........................................................................................................... 34
7. Trò chơi đa nền tảng và tích hợp mạng: ................................................................................ 41
8. Hiệu suất và tối ưu hóa: ......................................................................................................... 54
9. Hỗ trợ và cộng đồng: ............................................................................................................. 55
10. Thử nghiệm và debugging: .................................................................................................. 57
11. Đóng gói và phát hành game: .............................................................................................. 61
KẾT LUẬN ............................................................................................................................... 62
TÀI LIỆU THAM KHẢO ....................................................................................................... 64 DANH MỤC HÌNH ẢNH
Hình ảnh 1: Download unity từ trang chủ
....................................................................................... 6 Hình ảnh 2: Cài đặt unity
................................................................................................................. 7
Hình ảnh 3: Cài đặt unity
................................................................................................................. 7
Hình ảnh 4: Cài đặt unity
................................................................................................................. 8 Hình ảnh 5: Cách cài
unity .............................................................................................................. 8
Hình ảnh 6: Cách cài unity
.............................................................................................................. 9
Hình ảnh 7: Cách cài unity
.............................................................................................................. 9 Hình ảnh 8: Cách cài
unity ............................................................................................................ 10
Hình ảnh 9: Cách cài unity ............................................................................................................
10 Hình ảnh 10: Tạo dự án Unity
....................................................................................................... 11 lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 11: Tạo dự án Unity ....................................................................................................... 11
Hình ảnh 12: Tạo dự án Unity ....................................................................................................... 12
Hình ảnh 13: Scene trong unity ..................................................................................................... 12 Hình ảnh 14: GameObject trong unity
.......................................................................................... 13 Hình ảnh 15: Inspector trong Unity
............................................................................................... 14
Hình ảnh 16: Hierarchy trong unity ...............................................................................................
15 Hình ảnh 17: Project trong Unity
.................................................................................................. 15
Hình ảnh 18: Console trong Unity ................................................................................................. 16 Hình ảnh 19: C# Script để quản lý nhân vật
.................................................................................. 16 Hình ảnh 20: Nơi chứa C# Scripts
................................................................................................. 17
Hình ảnh 21: Tạo 1 C# script mới ................................................................................................. 17 Hình ảnh 22: Cách chọn IDE để làm việc trong Unity
.................................................................. 18 Hình ảnh 23: Ví dụ về cây phân cấp Game Objects
...................................................................... 19
Hình ảnh 24: Thuộc tính của 1 Game Object ................................................................................ 20 Hình ảnh 25: Component được gắn vào Game Object
.................................................................. 21 Hình ảnh 26: Xử lý logic và sự kiện cho 1 nút bấm
...................................................................... 22 Hình ảnh 27: Quản lý tài nguyên trong Unity
............................................................................... 22 Hình ảnh 28: Giao diện của Rigidbody
......................................................................................... 30 Hình ảnh 29: Giao diện của Box
Collider ..................................................................................... 31
Hình ảnh 30: Giao diện Hinge Joint .............................................................................................. 32 Hình ảnh 31: Giao diện Layer Collision Matrix
............................................................................ 32 Hình ảnh 32: Hỉnh ảnh: Minh họa về
Raycast............................................................................... 33
Hình ảnh 33: Canvas trong Unity .................................................................................................. 35 Hình ảnh 34: Chế độ render
........................................................................................................... 36 Hình ảnh 35: Inspector
đối tượng Text .......................................................................................... 37 Hình ảnh 36:
Inspector đối tượng Image ....................................................................................... 38
Hình ảnh 37: Inspector đối tượng Button ...................................................................................... 39
Hình ảnh 38: Transiton đối tượng Button ...................................................................................... 40 lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 39: Event OnClick ......................................................................................................... 40
Hình ảnh 40: Script đơn giản để tương tác với đối tượng ............................................................. 41
Hình ảnh 41: Phần File trong Unity .............................................................................................. 43
Hình ảnh 42: Giao diện phần Build Settings ................................................................................. 43
Hình ảnh 43: Giao diện phần Build Settings, phần các Scene để xây dựng ..................................
44 Hình ảnh 44: Giao diện phần Build Settings, nút Player Settings
................................................. 45 Hình ảnh 45: Giao diện phần Audio trong Project Settings
.......................................................... 45
Hình ảnh 46: Giao diện phần Player trong Project Settings .......................................................... 46
Hình ảnh 47: Giao diện phần Player (Icon) trong Project Settings ............................................... 46
Hình ảnh 48: Giao diện phần Player (Resolution and Presentation) trong Project Settings .........
47 Hình ảnh 49: Giao diện phần Player (Splash Image) trong Project Settings
................................. 47 Hình ảnh 50: Giao diện của phần Build Settings, nút Build and Run
........................................... 48
Hình ảnh 51: Màn hình mở đầu ..................................................................................................... 48
Hình ảnh 52: Cấu trúc thư mục cơ bản của một trò chơi............................................................... 49
Hình ảnh 53: Profiler trong unity ..................................................................................................
52 Hình ảnh 54: Frame Debug trong unity
......................................................................................... 53
Hình ảnh 55: Cửa sổ console trong Unity ..................................................................................... 55 MỞ ĐẦU lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Tiểu luận này tập trung vào việc tìm hiểu về game engine Unity - một công cụ phát triển
trò chơi mạnh mẽ và phổ biến trong ngành công nghiệp game hiện nay. Unity đã trở thành
một trong những game engine hàng đầu trên thị trường, được sử dụng rộng rãi để phát triển
trò chơi đa nền tảng từ di động cho đến máy tính và kể cả thực tế ảo.
Trong phần này, nhóm sẽ khám phá các khía cạnh quan trọng của Unity và những khả năng
mà nó mang lại cho nhà phát triển trò chơi. Nhóm sẽ xem xét các tính năng và công nghệ
mạnh mẽ của Unity, cách nó hỗ trợ việc phát triển trò chơi đa nền tảng và cung cấp một
môi trường sáng tạo cho các nhà phát triển.
Đồng thời, nhóm sẽ xem xét các công cụ và tài nguyên hỗ trợ của Unity, bao gồm việc làm
việc với đồ họa, âm thanh, vật lý và nhiều khía cạnh khác để tạo ra trò chơi chất lượng cao.
Nhóm cũng sẽ nghiên cứu về cách Unity hỗ trợ phát triển trò chơi trong môi trường đa
ngôn ngữ và đa nền tảng.
Cuối cùng, Nhóm sẽ đánh giá các lợi ích và hạn chế của việc sử dụng Unity trong phát
triển trò chơi, cũng như những xu hướng và triển vọng trong tương lai của nền tảng này.
Mục tiêu của tiểu luận này là cung cấp một cái nhìn tổng quan về Unity và hiểu rõ hơn về
sức mạnh và tiềm năng của game engine này trong việc phát triển trò chơi đa nền tảng.
Nhóm hy vọng rằng thông qua nghiên cứu này, người đọc sẽ có cái nhìn sâu sắc và chi tiết
hơn về Unity và có thể áp dụng kiến thức này vào công việc thực tế trong lĩnh vực phát triển trò chơi.
1. Tổng quan về Unity
• Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà chủ
yếu để phát triển video game cho máy tính, consoles và điện thoại. Lần đầu tiên nó được
công bố chạy trên hệ điều hành OS X, tại Apple's Worldwide
• Developers Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng.
• Unity hỗ trợ đồ họa 2D và 3D, các chức năng được viết chủ yếu qua ngôn ngữ C#.
Trong 2D games, Unity cho phép nhập sprites và một renderer thế giới 2D tiên tiến. Đối
với 3D games, Unity cho phép thiết lập các đập điểm kỹ thuật của các kết cấu và độ
phân giải mà công cụ trò chơi hỗ trợ, cung cấp các hỗ trợ cho bump mapping, reflection
mapping, parallax mapping, cảnh không gian ambient occlusion (SSAO), hiệu ứng bóng
đổ bằng cách sử dụng shadow maps, render thiết lập toàn cảnh đến hiệu ứng.
• Unity nổi bật với khả năng xây dựng trò chơi chạy trên nhiều nền tảng. Các nền tảng
được hỗ trợ hiện nay là Android, Android TV, Facebook Gameroom, Fire OS, Gear VR,
Google Cardboard, Google Daydream, HTC Vive, iOS, Linux, macOS, Microsoft HoloLens, lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Nintendo 3DS family, Nintendo Switch, Oculus Rift, PlayStation 4, PlayStation Vita,
PlayStation VR, Samsung Smart TV, Tizen, tvOS, WebGL, Wii U, Windows, Windows
Phone, Windows Store, và Xbox One.
2. Lịch sử về Unity
• Unity game engine khởi động năm 2005, nhằm "dân chủ hóa" phát triển game bằng
cách cung cấp cho nhiều nhà phát triển hơn.
• Unity 2.0 ra mắt năm 2007 với khoảng 50 tính năng mới. Bản phát hành bao gồm một
công cụ địa hình được tối ưu hóa cho môi trường 3D, real-time dynamic shadows,
directional lights và spotlights, phát lại video và các tính năng khác. Bản phát hành cũng
bổ sung các tính năng nhờ đó các nhà phát triển có thể cộng tác dễ dàng hơn. Nó bao
gồm một Networking Layer để các nhà phát triển tạo game nhiều người chơi dựa trên
User Datagram Protocol, cung cấp Network Address Translation, State Synchronization, và Remote Procedure Calls.
• Unity 3.0 ra mắt tháng 9 năm 2010 với tính năng mở rộng các tính năng đồ họa của
engine cho máy tính để bàn và video game consoles
• Tháng 11 năm 2012, Unity Technologies phát hành Unity 4.0. Phiên bản này bổ sung
các hỗ trợ cho DirectX 11 và Adobe Flash, các công cụ hoạt ảnh mới có tên Mecanim,
và quyền truy cập vào bản xem trước Linux.
• Unity Technologies ra mắt Unity 5 năm 2014, với nhiều cải tiến đáng kể trong đồ họa,
đặc biệt là hỗ trợ vật lý toàn cầu.
• Năm 2016 Unity Technologies công bố Unity 5.6 và giới thiệu mô hình kinh doanh mới
bằng việc cung cấp phiên bản Personal (miễn phí) và phiên bản Professional (trả phí) của Unity.
• Năm 2018 Unity mở cửa hàng tài nguyên Asset Store, nơi các nhà phát triển có thể mua
và bán tài sản dự án và công cụ phát triển.
3. Kiến thức cơ bản về Unity:
3.1 Cách tải và cài đặt Unity
• Bước 1: Truy cập vào website chính thức của Unity https://unity.com/ và nhấp vào “Download for Windows”. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 1: Download unity từ trang chủ
• Bước 2: Khởi chạy tệp .exe nhận được > nhấp vào “I agree.
Hình ảnh 2: Cài đặt unity
• Bước 3: Chọn thư mục để cài Unity và nhấp vào “Install”. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 3: Cài đặt unity
• Bước 4: Chờ quá trình cài đặt hoàn tất và chọn vào “Finish” để hoàn tất”.
Hình ảnh 4: Cài đặt unity
• Bước 5: Nhấp vào nút “Sign in”. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 5: Cách cài unity
• Bước 6: Đăng nhập bằng tài khoản Google > xác thực Email > đồng ý các điều khoản và chọn “Continue”.
Hình ảnh 6: Cách cài unity
• Bước 7: Sau khi đăng nhập thành công, hãy chọn mở Unity app và chọn vào “Install” ở
góc phải màn hình > chọn phiên bản muốn cài đặt (tốt nhất là chọn bản mới nhất). lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 7: Cách cài unity
• Bước 8: Chọn một module muốn cài đặt (như trên hình) và nhấp vào “Continue”.
Hình ảnh 8: Cách cài unity
• Bước 9: Lúc này, bạn chỉ cần đồng ý với các điều khoản và bản quyền, sau đó nhấp vào
“Install” để hoàn tất cài đặt Unity. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 9: Cách cài unity
3.2 Cách tạo một dự án Unity
• Bước 1: Vào Unity Hub nhấn New Project
Hình ảnh 10: Tạo dự án Unity
• Bước 2: Đặt tên cho dự án của bạn, chọn nơi lưu trữ và chọn phiên bản Unity mà bạn
muốn sử dụng cho dự án này. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 11: Tạo dự án Unity
• Bước 3 Nhấn nút "Create" để tạo dự án.
Hình ảnh 12: Tạo dự án Unity
3.3 Các thành phần cơ bản của unity
• Scene: Cửa sổ Scene là nơi bạn tạo và chỉnh sửa các cảnh trong dự án của mình. Cảnh là
nơi bạn sắp xếp và quản lý các Game Object và tài nguyên của dự án. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 13: Scene trong unity
• Game Object: Game Object là các thành phần cơ bản của môi trường 3D trong Unity.
Chúng có thể là các đối tượng như nhân vật, đối tượng tĩnh, ánh sáng, vật phẩm, vv. Bạn
có thể tạo, di chuyển, xoay, và thay đổi các thuộc tính của Game Object trong cửa sổ Inspector.
Hình ảnh 14: GameObject trong unity
• Inspector : Cửa sổ Inspector hiển thị thông tin chi tiết về Game Object được chọn. Bạn có
thể thay đổi các thuộc tính của Game Object và gán các thành phần và kịch bản vào đó.
Nó cũng hiển thị thông tin về tài nguyên, vật liệu, và các thành phần khác liên quan đến
đối tượng đang được chọn. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 15: Inspector trong Unity
• Hierarchy (Danh sách đối tượng): Cửa sổ Hierarchy hiển thị danh sách tất cả các Game
Object trong cảnh hiện tại. Nó thể hiện cấu trúc cây của các đối tượng, cho phép bạn dễ
dàng tìm và chọn chúng. Bạn cũng có thể sắp xếp và nhóm các đối tượng trong cửa sổ này. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 16: Hierarchy trong unity
• Project : Cửa sổ Project là nơi bạn quản lý tất cả các tài nguyên của dự án, bao gồm tệp
hình ảnh, âm thanh, mô hình 3D, tệp văn bản và nhiều tài nguyên khác. Bạn có thể tạo,
kéo và thả, và sắp xếp các tài nguyên trong cửa sổ này.
Hình ảnh 17: Project trong Unity
• Console: Cửa sổ Console hiển thị thông báo và lỗi từ mã nguồn và chạy của ứng dụng.
Điều này rất hữu ích để theo dõi lỗi và thông tin gỡ lỗi trong quá trình phát triển. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 18: Console trong Unity
4. Lập trình trong Unity:
4.1 Ngôn ngữ lập trình C#
• C# (C Sharp) là ngôn ngữ lập trình phổ biến được sử dụng trong Unity để viết các scripts
để điều khiển hành vi và tương tác của các đối tượng trong game.
Hình ảnh 19: C# Script để quản lý nhân vật
• Tích hợp Unity và C#: Unity hỗ trợ C# như một trong những ngôn ngữ lập trình chính để phát triển ứng dụng. lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 20: Nơi chứa C# Scripts
Hình ảnh 21: Tạo 1 C# script mới
• Phát triển ứng dụng đa nền tảng: Một ưu điểm lớn của việc sử dụng C# trong Unity là
khả năng phát triển ứng dụng đa nền tảng. C# hỗ trợ cho việc viết một lần và triển khai
trên nhiều nền tảng khác nhau như iOS, Android, PC, Mac, các thiết bị game console, VR, và AR.
• Khả năng kết hợp với Unity API: C# có thể tương tác chặt chẽ với các API và tính năng
của Unity. Có thể sử dụng C# để thao tác với các đối tượng Unity, quản lý tài nguyên,
xử lý sự kiện và tạo logic cho game.
• Dễ thao tác: C# được thiết kế để có cú pháp dễ đọc và dễ hiểu, điều này giúp cho việc
dễ quản lý và bảo trì. C# cũng cung cấp nhiều tính năng như quản lý bộ nhớ tự động
(garbage collection) và nhiều thư viện hỗ trợ mạnh mẽ khác.
• Debugging: Unity cung cấp môi trường phát triển tích hợp cho việc debug C#. Người
lập trình có thể theo dõi biến, xem xét lỗi, và kiểm tra hành vi của ứng dụng trong thời gian thực.
• Cộng đồng lớn: Cộng đồng Unity rộng lớn và nhiều nguồn tài liệu học tập trực tuyến
dành riêng cho lập trình C#. Điều này rất hữu ích cho việc sửa lỗi hoặc nhu cầu nâng cao kiến thức. 4.2 External IDE
• Unity cho phép linh hoạt sử dụng nhiều External IDE cho việc lập trình C#. Chúng ta có
thể chọn IDE muốn dùng bằng cách chọn Edit -> Preferences -> External Tools -> External Script Editor lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 22: Cách chọn IDE để làm việc trong Unity
• Một số IDE phổ biến được sử dụng là Visual Studio (recommended). VS Code, Jetbrains Rider,... 4.3 Game objects • Game Object là gì?
○ Game Object trong Unity là một đối tượng cơ bản trong thế giới 3D hoặc 2D của trò
chơi hoặc ứng dụng. Chúng có thể biểu diễn bất kỳ thứ gì, từ nhân vật và vật phẩm
đến ánh sáng, camera, và môi trường. • Tạo Game Objects:
○ Chúng ta có thể tạo Game Objects bằng cách nhấp chuột phải trong cửa sổ Scene hoặc
Hierarchy trong Unity và chọn "Create Empty" hoặc "Create 3D Object" (hoặc
"Create 2D Object" nếu Chúng ta làm việc trong không gian 2D).
○ Có thể tạo Game Objects tùy chỉnh bằng cách sử dụng Prefabs hoặc tải các mô hình 3D hoặc hình ảnh 2D. • Sắp xếp Game Objects:
○ Game Objects trong Unity được sắp xếp theo cấu trúc cây phân cấp, được hiển thị trong
cửa sổ Hierarchy. Điều này cho phép Chúng ta quản lý và nhóm chúng lại với nhau.
○ Ví dụ, PlayerUI có chứa HUD và UIWindow, trong chúng lại có những object con khác: lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
Hình ảnh 23: Ví dụ về cây phân cấp Game Objects
• Thiết lập thuộc tính Game Object:
○ Mỗi Game Object có các thuộc tính riêng, bao gồm vị trí, quay, tỷ lệ, hình dạng, vật lý
và nhiều thuộc tính khác. Chúng ta có thể chỉnh sửa các thuộc tính này trong cửa sổ Inspector.
Hình ảnh 24: Thuộc tính của 1 Game Object
• Gắn các Component (bộ phận): lOMoAR cPSD| 58737056
Tìm hiểu về game engine Unity – Nhóm 1
○ Game Objects có thể có các Component gắn vào chúng để cung cấp chức năng và
logic. Ví dụ, Chúng ta có thể gắn Component như Collider (để xác định va chạm),
Rigidbody (để xử lý vật lý), hoặc các Component tự tạo bằng cách viết code bằng C#.