Hơn nữa, lĩnh vực công nghệ ngày nay đang có những bước phát triển mạnhcùng với sự phát triển rộng rãi của các thiết bị điện tử, di động thì việc học tậpkhông chỉ giới hạn trên lớp với s
Trang 1LVG NVA N¡Af\DN
€0LLLH/Iđ
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN I
ĐỎ AN TOT NGHIỆP
ĐÈ TÀI:
XÂY DỰNG ỨNG DỤNG HỌC TẬP DRIMLEARN
BANG UNITY
Người hướng dẫn : ThS Trịnh Thị Vân Anh
Sinh viên thực hiện: Nguyễn Văn Đạt Lớp: D17HTTTO3
Hệ: Đại học chính quy
HÀ NỘI - 2021
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG
KHOA CÔNG NGHỆ THÔNG TIN I
ĐỎ AN TOT NGHIỆP
ĐÈ TÀI:
XÂY DỰNG ỨNG DỤNG HỌC TẬP DRIMLEARN
BANG UNITY
Người hướng dẫn: ThS Trịnh Thi Vân Anh
Sinh viên thực hiện: Nguyễn Văn Đạt
Lớp: DI7HTTT03
Hệ: Đại học chính quy
Trang 3DO ÁN TOT NGHIỆP NHẬN XÉT
NHAN XÉT
(Của giảng viên hướng dẫn)
Hà Nội, ngày tháng năm 20
Giảng viên hướng dẫn
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 1
Trang 4DO ÁN TOT NGHIỆP NHẬN XÉT
NHAN XÉT
(Của giảng viên hướng dẫn)
Hà Nội, ngày tháng năm 20
Giảng viên hướng dẫn
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 2
Trang 5DO AN TOT NGHIỆP LOI CAM ON
LOI CẢM ON
Em xin cảm ơn các thay giáo, cô giáo của Hoc Viện Công nghệ Buu ChínhViễn thông, đặc biệt là các thầy cô trong khoa Công nghệ thông tin 1 đã tận tìnhdạy dỗ và chỉ bảo em trong suốt 4 năm học vừa qua
Em xin chân thành cảm ơn ThS Trịnh Thị Vân Anh đã chỉ dạy và hướngdẫn cho em trong việc lựa chọn đề tài, cũng như chỉ bảo tận tình trong quá trìnhthực hiện dé tài và viết báo cáo đồ án này
Cuối cùng em xin cảm ơn gia đình, bạn bè, đồng nghiệp, những người đãluôn bên cạnh động viên, giúp đỡ em trong những lúc khó khăn và luôn tạo cho
em điều kiện tốt nhất để hoàn thành đồ án này
Mặc dù đã cô gang hoàn thành nghiên cứu trong phạm vi cho phép nhưngchắc chắn sẽ không tránh khỏi được sự thiếu sót Em kính mong nhận được sựthông cảm của thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 6DO AN TOT NGHIỆP LOI CAM KET
LOI CAM KET
Ho va tén sinh vién: Nguyén Van Dat.
Dién thoai lién lac: 0981538161.
Email: datnguyen0801 1999 @ gmail.com.
Mã sinh viên: B17DCCN115.
Lớp: DI7HTTT043.
Hệ dao tạo: Đại học chính quy.
Tôi — Nguyễn Văn Đạt — cam kết đồ án tốt nghiệp (DATN) là công trình nghiêncứu của bản thân tôi dưới sự hướng dẫn của ThS Trịnh Thị Vân Anh Các kết quảnêu trong đồ án tốt nghiệp là trung thực, là thành quả của riêng tôi, không sao chéptheo bat kỳ công trình nào khác Tất cả những tham khảo có trong đồ án tốt nghiệp
— bao gồm hình ảnh, bảng biểu, số liệu và các câu từ trích dẫn — đều được ghi rõràng và đầy đủ nguồn gốc trong danh mục tài liệu tham khảo Tôi xin hoàn toànchịu trách nhiệm với dù chỉ một sao chép vi phạm quy chế của nhà trường
Hà Nội, ngày 26 tháng 11 năm 2021
Tác giả
Nguyễn Văn Đạt
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 4
Trang 7DO AN TOT NGHIỆP MUC LUC
MUC LUCDANH MỤC HINH ANH - ¿2-5 ©522SE‡EEEEE2E22122171121121121 71.21 re 7DANH MỤC BANG BIEU 2-52 ©522S<2SE‡EE2EE2EEE2EEEE2EE2EEEEEerkrrrrrrrrree 9DANH MỤC CHU VIET TẮTT 2- + + +E+E£+EE£EE£EEEEEEEEEEEEEEEEErrkrrkerkeee 10LOI NÓI DAU -2-©22©2<22E£2EEEEEEE2112712212112711271211111 11211111111 11CHƯƠNG I GIỚI THIEU CHUNG 22 ¿2£ ©£2£E£2£E£2££+£x+zzxe+zsez 13
1.1 Giới thiệu bài toán -2-©5<+Sk SE 2E E21 211211 212121 141.1.1 Tên để tài Sc2kc2 2E E222 erkerrrei 141.1.2 Mục tiêu dé tài ¿ 2ccctct2EE E2 EEcrrrerrrrree 14
1.1.3 Mục tiêu nghiên CỨU G1 3S * S3 ng ey 14
1.2 Tổng quan về Unity Engine - 2 2+s+E+E£+E+EEerkzEezrxrrxerxee 141.2.1 Giới thiệu cơ bản về Unity Engine -¿ -:©+c5+5cxz+cse2 141.2.2 Ưu điểm của Unity Engine[4] - 2-52 2 +Eezxerxererszrezes 15
1.23 Ngôn ngữ lập trình trong Unity Engine|4] - -. «-<<«+ 17
1.2.4 Các thành phan chính trong cửa số làm việc Unity Editor[3] 181.2.5 Một số thuật ngữ, khái niệm trong Unity[ S] -««-+-«<>+5 221.3 Tổng kết 2c 2L 2H22 221221221121121121111211211 11 E1 23CHƯƠNG II PHAN TÍCH VA THIET KE UNG DỤNG - 24
2.1 Giới thiệu về ứng Ung ieeeececececccecccsssesesssessessessessessesscssssessessessesseanees 252.1.1 Sơ đồ hoạt động chung của ứng dụng -¿z5s+csecsee- 262.1.2 _ Xác định tác nhân và xây dung use case tổng quan - 262.2 Unit 1: Game Save Ear(H c1 1111111231111 1 118851111111 22x xe 272.2.1 Thể loại 2c 2< 2k k2 2E E21221211211211 1111111 272.2.2 Kịch bản 2k 2t 2t E221 eerrrree 27
2.2.3 Thiết kế chỉ tiết[ l] -¿-©5¿©7+2EE2EESEESEEEEEEEkrrrkerkrerkrsree 282.2.4 Các thành phan chính -2- + ++++2E++Ex++rxzrxrrxrerkesree 342.3 Unit 2: Game Christmas Egg c3 3 re 37
"ch š 5n 372.3.2 Kich bản - 7c ck ct SE E211 372.3.3 Thiết kế chi tiết[ ] ¿2c ©+£+E£+E£EE£EEEEEEEEEEEEEEEEErrkrrkerveee 372.3.4 Các thành phần chính -¿ 2 ++++£E££E£+E++EEtrEtzxzxerrserxeee 44
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 5
Trang 8DO AN TOT NGHIỆP MUC LUC
2.4 Unit 3: Math Game - - - - Ă-G E33 2101111111 9111111111 88511 111 kg xe 462.4.1 Thể loại 2c 2c 2k t2 2E 21221211211211.1111 21.11 462.4.2 Kịch bản 2c 2k2 2H21 2112211211211 eerrrree 46
2.4.3 Thiết kế chỉ tiết[ l] 2¿-©5¿27+2EE‡EESEECEEEEEEErkrrrkrrrerkrree 462.4.4 Các thành phan chính - 2-2 2 2+++x+E£+E+£EEtEEtzx+zrerrserxeee 522.5 Unit 4: Game Dunge€on - - sgk kg ngư, 542.5.1 Thể Lodi veccecccccessesssessessessusssessessessusssessessessussssesessessessusssessessessseeseesess 54
3.1 Yêu cầu hệ thong wv eeccecccecscsssesssssssessecssecsssssscssscssecsscssscssecssessecssecsseeseesses 683.2 Cài D&E eececcccccccsessessessessessessusssessecsessusssessecsessussusssessessussesssessesseseseeseess 683.3 Xử lý các thành phần trong game - - 2-2 2 2+E£+Ee£x+£xeExerszrezes 703.3.1 Xử lý đồ họa[| - 5c tk E2 2122111111111 cte 70
3.3.2 Xử lý âm thanh -©sc+x++E£EkeEEEEEEEEEEEEEEErkrrrrrkerkee 70
3.4 Tổng kết -c- St Tt TT 11121121121 1121111211211 11 11 1111 11x re, 71CHƯƠNG IV KET LUẬN VÀ HƯỚNG PHÁT TRIẺN -2-5¿ 724.1 Kết quả dat được -: ©2++2xcSEk2 2x22 734.2 Những hạn chẾ -¿- 2 £+St+E‡EEEEEEEEEEEEE12112112111171 1111111 xe 734.3 Hướng phát triỂn - 2+ £+k++E#EEEEEEEEEE12112112112171 21111 1.cxe 74
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 6
Trang 9ĐỎ ÁN TÓT NGHIỆP DANH MỤC HÌNH ẢNH
DANH MỤC HÌNH ANH
Hình 1 1 Các nền tảng Unity hỗ trợ 2-22 2 2+5++£E£2E£+EE£EEeEEzEezrxerxerxee 15Hình 1 2 Nền tảng được cài đặt trong đồ án 2-52 ccccxczErrerxerseee 16Hình 1 3 Thống kê người dùng Game Engine - 2 ¿+ + s2 =s+£++cz+: 17
Hình 1 4 Cửa số làm việc với Unity Engine 2 2 + x+cxccxerxrrssreee 18
Hình 1 5 Ví dụ về khởi tạo đối tượng trong Hierarchy - 5 s55: 19Hình 1 6 Chọn kích thước màn hình + 2+2 +22 **£ +2 + +zzeezzeeeezxs 20Hình 1 7 Ví dụ về màn hình Console -.-¿- - + s+x+E+EEE+E+EeEE£E+EeEertzEerrezxee 21
Hình 2 1 Sơ đồ hoạt động của ứng dụng - 2-2 2 2+cz+xe£Eerxerxerxersereee 26Hình 2 2 Biéu đồ use case tong quan của hệ thống .2 2¿-c5¿©55z-: 27Hình 2 3 Use case chi tiết Unit 1 Save Earth -2©-s+cs+cxezxczrserxerseee 28Hình 2 4 Biểu đồ lớp thực thé Unit l -2- 2 2£ 5£+E£+££+£++£xezEzrserxerxeee 32Hình 2 5 Biểu đồ lớp thiết kế Unit 1 2-2-2 5£+££+E++EE+£EezEzrserxerxeee 32Hình 2 6 Biểu đồ tuần tự Unit l c:¿-55++tcvcxvtrerrtrrerrtrrrrrrrrrrrrrrrk 33
Hình 2 7 Phần mở đầu game Save Earth - 2-2 2 2+S£+E££Ee£xerxerxerzreee 33
Hình 2 8 Giao diện chính game Save Earth - -. 5 kh erirey 34
Hình 2 9 Use case chỉ tiết Unit 2 Christmas Eggs -252 25+: 37Hình 2 10 Biểu đồ lớp thực thé Unit 2 -2- 2 2 2 2+££+E££EeEEeExeExerszreee 41Hình 2 11 Biểu đồ lớp thiết kế Unit 2 - ¿2-2522 2+S22E£+E££EeEEeExerxersrreee 4IHình 2 12 Biểu đồ tuần tự Unit 2 c:¿-552ccc2xvctrxttrerktrrrrrrrrrrrrrrrrk 42Hình 2 13 Phan mở đầu game Christmas Eggs - 2 2 5s s2 s+£z+cz+z 42
Hình 2 14 Giao diện game Christmas EgS 5 5 + sskeeseeeres 43
Hình 2 15 Giao diện câu hỏi game Christmas Eggs -. «55s <+<<<++ 43Hình 2 16 Use case chi tiết Unit 3 Math Game c.ccsccsssessessesssesseesesseessesseeses 46Hình 2 17 Biểu đồ lớp thực thé Unit 3 ccccccccccccssessessessessessessesssesseesessesssesseeses 50Hình 2 18 Biểu đồ lớp thiết kế Unit 3 2-2-2 5£+S£+££+£E+£Ee£EzErrxerseee 50Hình 2 19 Biểu đồ tuần tự Unit 3 ¿ 25cccctkrrrtrktrirrrrrrrriirrrrirriio 51Hình 2 20 Mở đầu Math Game - 2-2 5£ ©5£+E£+EE£EE£2EE2EEEEEEEEeEEErEkrrxerkere 51
Hình 2 21 Giao diện trả lời câu hỏi Math game - - 55-5 5+5 s+++sc+sss+ 52
Hình 2 22 Use case chỉ tiết unit 4 o seeccssessesssseecesssneecesssneceessneseessnessesnneess 55Hình 2 23 Biểu đồ lớp thực thé Unit 4 ¿2-2 2 2 £+E£+E££EeExeExeExerszrxee 58Hình 2 24 Biéu đồ lớp phân tích Unit 4 2-2 2 2+ £+E+E££E+£xeExerezreee 59Hình 2 25 Sơ đồ tuần tự Unit 4 ccccc2+vctEktrtrktrrrrttrrrrrtrrrrrrrrrk 59Hình 2 26 Giao diện mở đầu game Dungeon 2- ¿2 ©++++zxz+sxzex 60Hình 2 27 Giao diện màn chơi game Ï2unge€oH -.- 5-5 55s ss+++ssexssss2 60Hình 2 28 Use case chi tiết chức năng cài đặt âm thanh -5-: 64Hình 2 29 Giao diện cài đặt âm thanh - c5 <5 E33 +2 +++eee+eeeesesexs 65
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 7
Trang 11ĐỎ ÁN TÓT NGHIỆP DANH MỤC BANG BIEU
DANH MỤC BANG BIEU
Bảng 2 1 Bảng mô tả lớp QuestÏnfOT.CS s5 55+ * + kESseeseeerseeererre 29
Bảng 2 2 Bảng mô tả lớp UI_ QuestMng.CS - c5 Series 30
Bảng 2 3 Bảng mô tả lớp QuestDisplay.cs c5 55s sSssseseeereses 31 Bang 2 4 Bảng mô tả lớp CharacterMng.CS cà series 39 Bảng 2 5 Bảng mô tả lớp UI_ QuestPlatform.Cs - 5 55-5 << s++sexsss2 40 Bang 2 6 Bang mô tả lớp GameManaget.cs - 5s csssssssersrrs 48 Bảng 2 7 Bang mô tả lớp CharDungeonMng.CS - 55+ £+<£+sce+exss 56
Bảng 2 8 Bảng mô tả lớp UIDungeonQuestMng.cs «<<<< s52 57 Bang 2 9 Bảng mô tả lớp ItemDungeon.cs - -. 5 St, 58 Bảng 2 10 Bang mô ta lop UI_ MenuSettingMng.Cs - 2-5 < << <++<s2 65
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 9
Trang 12ĐỎ ÁN TÓT NGHIỆP DANH MỤC CHU VIET TAT
DANH MUC CHU VIET TAT
STT | Từ viết tắt Tiếng Anh Tiếng Việt/ Giải thích
1 MVC Model View Controller | Mô hình thiết kế sử dung trong kỹ
4 FPS Frames per second Chỉ số khung hình trên mỗi giây
5 API Application Giao diện lập trình ứng dụng
Programming Interface
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 10
Trang 13ĐỎ ÁN TÓT NGHIỆP LỜI NÓI ĐẦU
LỜI NÓI ĐẦU
Hiện nay, sự hội nhập cũng như toàn cầu hóa đang là một xu thế tất yếu và
việc tình hình dịch bệnh covid ngày càng trở nên căng thăng khiến cho việc học
tập trở nên khó khăn hơn Chính vì vậy việc học tập và phát triển tư duy là hết sứcquan trọng Toán học là một bộ môn xuyên suốt mọi cấp học và là cũng là mônkhoa học hết sức phổ biến hiện nay, toán giúp chúng ta rèn luyện tư duy, rèn luyện
khả năng tập trung, có thể áp dụng vào đời sống
Hơn nữa, lĩnh vực công nghệ ngày nay đang có những bước phát triển mạnhcùng với sự phát triển rộng rãi của các thiết bị điện tử, di động thì việc học tậpkhông chỉ giới hạn trên lớp với sách, vở và bảng truyền thống Ngày nay, chúng ta
có thê tiếp cận với những kiến thức mới chỉ cần với một chiếc điện thoại di động
nhỏ gọn.
Thay vì chúng ta dạy học môn toán một cách khô khan như cách truyềnthống thì khi đưa môn toán vào ứng dụng học tập thì việc học sẽ trở nên thú vị và
dễ nhớ hơn với việc cho phép người học tương tác với những hình ảnh, những trò
chơi trong game, nhất là với giới trẻ và đặc biệt là trẻ em, việc đưa các bài họcthông qua các trò chơi sẽ khiến chúng cuốn hút và thú vị hơn rất nhiều so với việchọc truyền thống trên sách vở Đó chính là lý do lớn nhất nhất dé em xây dựng đồ
án này với đề tài : “Xây dựng ứng dụng học tập DrimLearn bằng Unity”
Phan mềm được xây dựng với mục đích kết hợp giữa việc học và chơi
Người chơi sẽ trải nghiệm các minigame, trong mỗi minigame sẽ đưa các câu hỏi
liên quan đến kiến thức toán học Điều này vừa mang lại sự thư giãn, thú vi, khôngnhàm chán Phần mềm được xây dựng trên nền tảng Android với trọng tâm chính
là hướng đến việc học tập của trẻ em, giúp các bé có thể trải nghiệm việc học màchơi, chơi mà học mọi lúc, mọi nơi chỉ với một thiết bị Android nhỏ gọn
Voi mục tiêu như vậy, em xin trình bay đô án với 4 chương như sau:
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 11
Trang 14ĐỎ ÁN TÓT NGHIỆP LỜI NÓI ĐẦU
Chương I Giới thiệu chung: Trong chương này, đồ án sẽ mô tả dé tài, giới thiệumục tiêu của đề tài, giới thiệu nền tảng Unity Engine, quá trình hình thành và
phát triển, ngôn ngữ lập trình C#
Chương II Phân tích và thiết kế ứng dụng: Trong chương này, đồ án sẽ giớithiệu cấu trúc, giao diện, cách chơi và các thành phần của game
Chương III Cài đặt ứng dụng: Trình bày các xử lý đồ họa, âm thanh, những
yêu cầu cho phần cài đặt phần mềm
Chương IV Kết luận và hướng phát triển: Tổng kết, tóm tắt những kết quả đãthực hiện được để và đề xuất hướng phát triển
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 12
Trang 15DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
CHUONG I GIOI THIEU CHUNG
Trong chương nay, đồ án sẽ mô tả và giới thiệu mục tiêu của dé tài cùng với đó là
giới thiệu các công cụ và công nghệ được sử dụng trong ứng dụng.
Nội dung chính bao gồm:
e Giới thiệu bài toán
e Tổng quan về Unity Engine
e Tổng kết
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 13
Trang 16DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
1.1 Giới thiệu bài toán
1.1.1
1.1.2
1.1.3
Tên đề tàiTên đề tài: Xây dựng ứng dụng học tập DrimLearn bằng Unity
Mục tiêu đề tàiMục tiêu dé tài: Xây dung 1 phần mềm học toán kết hợp với chơi game giúpcho việc học của các bạn học sinh trở nên thú vị hơn Phần mềm tiện lợi cóthể sử dụng mọi lúc mọi nơi và hiệu quả cho người sử dụng
Đối tượng hướng đến: các bạn học sinh lớp 3.
Ứng dụng công nghệ Unity tạo nên sự tương tac va hiển thị hình ảnh, hoạtảnh trực quan cho người học.
Mục tiêu nghiên cứuTìm hiểu về mô hình MVC và áp dụng mô hình MVC vào lập trình game.Tìm hiểu chuyên sâu về ngôn ngữ lập trình C#
Tìm hiểu chuyên sâu về Unity Engine, cách thức sử dụng và xây dựng một
ứng dụng hoàn chỉnh trên Unity Engine.
1.2 Tong quan về Unity Engine
1.2.1 Giới thiệu cơ bản về Unity Engine
Định nghĩa
Unity là một là công cụ phát triển game đa nền tảng (cross- flatformgame engine) được phát triển bởi Unity Technologies Game engine nàyđược sử dung dé phat trên game trên PC, consoles, thiết bi di động và trênwebsites.
Quá trình phát triển
Ra mắt đầu tiên vào năm 2005 tại sự kiện Apple’s WorldwideDeveloper Conference bởi nha sáng lập David Helgason, trai qua hon 12năm phát triển, nay Unity đã có version 5.5 hoàn thiện hơn về rat nhiều mặt.Tháng 5-2012 theo cuộc khảo sát Game Developer Megazine được công
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 14
Trang 17DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
1.2.2
nhận là Game engine tốt nhất cho mobile Năm 2014 Unity thắng giải “BestEngine” tại giải UK’s annual Develop Industry Exellence.
Ưu điểm của Unity Engine[4]
Chức năng cốt lõi đa dạng bao gồm: cung cấp công cụ dựng hình (kết xuất
đồ họa) cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toán và phát hiện
va chạm), âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng,tạo dòng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng.Nhờ có các engine mà công việc làm game trở nên ít tốn kém và đơn giảnhơn.
Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả năng
hỗ trợ gần như toàn bộ các nền tảng hiện có bao gồm: PlayStation 3, Xbox
360, Wii U, 1OS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web và cả Flash Nói cách khác, chỉ với một gói engine, các studio
có thé làm game cho bat kỳ hệ điều hành nào va dé dang convert chúng sangnhững hệ điều hành khác nhau Đồng thời, đây cũng là giải pháp cho cácgame online đa nền tảng — có thé chơi đồng thời trên nhiều hệ điều hành,phần cứng khác nhau như Web, PC, Mobile, Tablet
iOS ® & — đa 6 4 Geer Pra
FVITA oon : uw 3Ds [ om } ba 9 + eer
Trang 18DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
Add Open Scenes Platform
Hình 1 2 Nên tang được cài dat trong đô án
e Dễ sử dụng: Unity3D được build trong một môi trường phát triển tích hợp,
cung cấp một hệ thống toàn diện cho các lập trình viên, từ soạn thảo mãnguồn, xây dựng công cụ tự động hóa đến trình sửa lỗi Do được hướng đếnđồng thời cả lập trình viên không chuyên và studio chuyên nghiệp, nênUnity3D khá dé sử dụng Hơn nữa, đây là một trong những engine phô biếnnhất trên thé giới, người dùng có thé dé dàng tìm kiếm kinh nghiệm sử dụngcủa “tiền bối” trên các forum công nghệ
e Cap nhật liên tục: Unity Engine luôn được cập nhật, phát triển qua các phiên
bản qua từng năm.
e Unity là engine phổ biến va thông dụng theo như thống kê đến ngày
12/12/2021 thì Unity vẫn là engine được dùng nhiều nhất
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 16
Trang 19DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
1.2.3
What game engines do you currently use?
72%
Hình 1 3 Thong kê người dùng Game Engine
Ngôn ngữ lập trình trong Unity Engine[4]
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# Hai ngôn ngữ lập trình khác cũng được hé trợ: Boo, đã bị loại cùng
với việc phát triển Unity 5 và UnityScript bị loại vào tháng 8 năm 2017 saukhi phát hành Unity 2017.1
C# (C Sharp) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽđược phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch NET của
họ Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theoECMA là C#, chỉ bao gồm dấu số thường Microsoft phát triển C# dựa trênC++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++,
Visual Basic, Delphi và Java.
C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nỗitiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC Phiên bản gần đâynhất là 9.0, được phát hành vào năm 2020 cùng với Visual Studio 2019
phiên bản 16.8.
Ngôn ngữ lập trình C# có những đặc trưng cơ bản sau:
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 17
Trang 20DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
- LAmé6t ngôn ngữ thuần hướng đối tượng, khá đơn giản, chỉ có khoảng
80 từ khóa và hơn mười may kiểu đữ liệu được dựng sẵn
- Cung cấp những đặc tính hướng thành phan (component oriented) như
là Property, Event.
- _ C# không khuyến khích sử dụng con trỏ như trong C++ nhưng nếubạn thực sự muốn sử dụng thì phải đánh dấu đây là mã không an toàn(unsafe), loại bỏ đa kế thừa trong C++ mà thay vào đó C# sẽ hỗ trợ thực
thi giao diện interface C# có bộ Garbage Collector sẽ tự động thu gom
vùng nhớ khi không còn sử dụng nữa.
e© Ưu điểm của C#:
- _ Xây dựng dựa trên nền tảng của các ngôn ngữ lập trình mạnh nên thừahưởng những ưu điểm của những ngôn ngữ đó
- Gan gũi với các ngôn ngữ lập trình thông dụng (C++, Java,Pascal)
- = Được sự chống lưng của NET Framework
e Nhược điểm của C#: Thao tác đối với phan cứng yếu hơn so với ngôn ngữ
khác Hầu hết phải dựa vào windows
1.2.4 Các thành phần chính trong cửa số làm việc Unity Editor[3]
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 18
Trang 21DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
e Cửa số 1: Hierarchy
Tab hierarchy là nơi hiển thi các GameObject trong Sences hiện hành va
cũng là nơi cho phép người dùng khởi tạo các đối tượng bằng tay Khi các đốitượng được thêm hoặc xóa trong Sences, tương ứng với các đối tượng đó trongcửa sô Hierarchy.
Tương tự trong tab Project, Hierarchy cũng có một thanh tìm kiếm giúp
quan lý và thao tác với các GameObject hiệu quả hơn đặc biệt là với các dự án
lớn.
Cut Copy
Paste Paste As Child
3D Object Physics Circle
Effects Tilemap Capsule
Light Sprite Shape Isometric Diamond
Trang 22DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
Khi người dùng nhắn nút play trong Unity thi cửa số Game sẽ luôn được hiểnthị.
Thanh công cụ trong cửa sô game cung cấp các tùy chỉnh về kích thướcmàn hình, thông số (stats), gizmos, tùy chon bật tắt các component
®Game
Display1 * 1820x1080 Portrait vị Scale ®—————————— 034x Maximize On Play | Mute Audio Stats Gizmos | *
¥ Low Resolution Aspect Ratios
VSyne (Game view only)
Free Aspect Dr im
800x480 Portrait 800x480 Landscape
1280x720 Portrait
J2NUEVSU a Landen pe
1920x1080 Landscape
2160x1080 Portrait 2160x1080 Landscape 2560x1440 Portrait 2560x1440 Landscape
2960x1440 Portrait Save Earth
2960x1440 Landscape 16:9 Portrait
16:9 Landscape ~
18:9 Portrait F ri
bes pe Christmas Eggs
Remote (Not Connected) (10x10)
(+)
Hình 1 6 Chon kích thước màn hìnhe_ Cửa số 4: Inspector
Cửa số Inspector hiển thị chỉ tiết các thông tin về GameObject đangduoc trỏ đến, kế cả những component được đính kèm và thuộc tính của nó.Người dùng có thể điều chỉnh, thiết lập mọi thông số và chức năng củaGameObject thông qua cửa số Inspector
Mọi thuộc tính thể hiện trong Inspector đều có thé dễ dàng tùy chỉnhtrực tiếp mà không cần thông qua một kịch bản định trước Tuy nhiên ScriptingAPI cung cấp một số lượng nhiều và đầy đủ hơn do giao điện Inspector là có
giới hạn.
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 20
Trang 23DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
Các thiết lập của từng component được đặt trong menu Người dùng cóthé click chuột phải, hoặc chon icon hình bánh răng nhỏ để xuất hiện menu.Ngoài ra Inspector cũng thể hiện mọi thông số Import Setting của asset đanglàm việc như hién thị mã nguồn của Script, các thông số animation,
e Cửa số 5: Project
Cửa số này hiển thị thông tin của tat cả các tài nguyên (Assets) ma bạn
đã cài vào Cột bên trái hiển thị assets và các mục yêu thích dưới dạng cây thư
mục tương tự như Windows Explorer Khi click vào một nhánh trên cây thư
mục thì toàn bộ nội dung của nhánh đó sẽ được hiền thị ở khung bên phải Ta
có thê tạo ra các thư mục mới băng cách Right click -> Create -> Folder hoặcnhắn vào nút Create ở góc trên bên trái cửa số Project và chọn Folder Các tàinguyên trong game cũng có thé được tao ra bằng cách này
Phía trên cây thư mục là mục Favorites, giúp người dùng truy cập nhanh
vào những tài nguyên thường sử dụng Chúng ta có thé dua các tài nguyên vàoFavorites bằng thao tác kéo thả
Đường dẫn của thư mục tài nguyên hiện tại Người dùng có thé dé dangtiếp cận các thư mục con hoặc thư mục sốc băng cách click chuột vào mũi tênhoặc tên thư mục.
e Ctra sô 6: Console
Noi hiển thi các thông báo, các lỗi khi chương trình hoạt động giúp chongười dung có thé nắm bắt được về hoạt động của chương trình
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 21
Trang 24DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
1.2.5 Một số thuật ngữ, khái niệm trong Unity[5]
Component
Một GameObject sẽ có nhiều thành phan cấu tạo nên nó như là vị trí
(transform- mặc định ObJect nào cũng phải có), hình ảnh (sprite render), tập
hợp các hành động (animator), thành phần xử lý va chạm (collision), tínhtoán vật ly (physical), mã điều khiến (script), các thành phần khác mỗithứ như vậy gọi là một component của GameObject.
GameObject: Một đối tượng cụ thé trong game gọi là một GameObject, có
thé là nhân vật, đồ vat nào đó.
Sprite
La một hình ảnh 2D của một GameObject có thé là hình ảnh day đủ,
hoặc có thé là một bộ phận nào đó Nhiều sprite liên tiếp nhau có thê tạo ra
các chuyên động của các object như một animation
Prefabs
Là 1 khái niệm trong Unity, dùng dé chỉ các đối tượng giống nhau
có trong game mà chỉ cần khởi tạo lại vị trí, tỷ lệ, thuộc tính
Ví dụ : Các đội tượng cây, lá trong game đều được xử lý giống nhaunên ta có thê lưu thành các Prefabs dé có thé sử dụng lại va tùy biến chúng.Sounds: Âm thanh trong game, được phát bởi component AudioSourcetrong Unity, ta có thể điều chỉnh các thuộc tính như độ to, tốc độ phát,
Trang 25DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG
- void Awake() được gọi trước ham StartQ (gọi ngay khi GameObject
được attach vào scene).
- void Update() được gọi tại mỗi frame (khung hình) trong game, tuỳ vào
logic mà hàm này có thé bị skip để tránh việc bị giảm FPS
- void FixedUpdate() được gọi ở mỗi physics frame, chuyên dùng cho
các tương tác vật lý, nêu ko dùng vật lý thi cũng không cần
- void LateUpdate() được gọi sau khi tất cả các hàm update đã được gọi
- void OnEnableQ/ OnDisable() được gọi khi GameObject bi enabled/
disabled trên Scene.
- void OnDestroy() được gọi khi GameObject bi destroyed (bị loại khỏi
màn, thông qua hàm GameObJect.Destroy).
- void OnGUIQ được gọi khi màn chơi được vẽ (drawing) và cho phép
script sử dụng GUI-API.
1.3 Tổng kết
Trong chương này đồ án đã trình bày được các thông tin chỉ tiết về đề tàiXây dựng ứng dụng học tập DrimLearn bang Unity và thông tin sơ bộ về các
công cụ được sử dụng trong ứng dụng.
Dựa vào bài toán đã được đặt ra ở chương này, chương tiếp theo đồ án sẽthực hiện phân tích và thiết kế ứng dụng
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 23
Trang 26DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
CHUONG II PHAN TICH VA THIET KE UNG DUNG
Trong chương nay, đồ án sẽ giới thiệu sâu hơn về ứng dung Qua đó sẽ di đến cácbước phân tích và thiết kế để tạo nên một ứng dụng hoàn chỉnh Nội dung chươngbao gồm:
e_ Giới thiệu về ứng dụng
e Unit 1: Save Earth
e Unit 2: Game Christmas Eggs
e Unit 3: Math Game
e Unit 4: Game Dungeon
e Chức năng cai đặt âm thanh
e Tổng kết
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 24
Trang 27DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
2.1 Giới thiệu về ứng dụng
Tên ứng dung: DrimLearn.
Đối tượng hướng đến: các bạn nhỏ với trình độ lớp 3 Các câu hỏi có nhiềudạng như: câu hỏi trắc nghiệm trọn một trong bốn đáp án hoặc trả lời tựluận dé người học có thể củng cô kiến thức về môn toán
Người học sẽ lần lượt trải qua các bài học với những chủ đề khác nhau, cácbài học kết hợp với dạng game một chạm Mỗi khi vượt qua được một câu
hỏi người học sẽ nhận được nhận phan thưởng tùy theo chủ dé từng bài học
và đến với câu hỏi tiếp theo
Ứng dụng được chia làm các Unit nhỏ, mỗi Unit sẽ có 1 game và 1 nội dungbài học khác nhau Cụ thé như sau:
Unit 1: Game Save Earth+ Chủ đề: bảo vệ môi trường, bảo vệ trái đất
+ Câu hỏi: cộng trừ số có 3 chữ số (không nhớ)
+ Game: với mỗi câu trả lời đúng, rác sẽ được đưa vào thùng rác và trồng
thêm được một cây xanh.
Unit 2: Game Christmas Eggs+ Chủ dé: yêu cầu nhặt trứng từ ông già nô-en
+ Câu hỏi: Cộng trừ số có 3 chữ số (có nhớ một lần)
+ Game: với mỗi câu trả lời đúng người học sẽ nhận được một quả trứng,
nhận được càng nhiều trứng thì sẽ càng mở ra rồng cấp cao
Unit 3: Math Game+ Chủ đề: luyện tập tính nhanh cùng bạn sóc
+ Câu hỏi: ngẫu nhiên về các chủ đề phép cộng, trừ, nhân, chia
+ Game: sau khi trả lời đúng câu hỏi trong thời gian quy định thì sẽ đếncâu hỏi kế tiếp
Unit 4: Game Dungeon
+ Chủ dé: cứu người khỏi mê cung
+ Câu hỏi: chủ đề về hình học
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 25
Trang 28DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
+ Game: cứu người lac trong mê cung bang cách vượt qua những câu hỏitrên đường thoát hiểm
2.1.1 Sơ đồ hoạt động chung của ứng dụng
Ứng dụng hoạt động theo một luồng chung như sau:
Ứng dụng chỉ có duy nhất một actor là người sử dụng(user) User có thể
thực hiện các chức năng: tham gia các bai hoc(unit 1, unit 2, unit 3, unit 4), cai đặt
âm thanh, thoát.
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 26
Trang 29DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
b Xây dựng use case hệ thông
Usecase Tổng Quan Ứng Dụng DrimLeam
Hình 2 2 Biểu đồ use case tổng quan của hệ thống
2.2 Unit 1: Game Save Earth
đúng, rác thải sẽ được dọn và trai dat sẽ có thêm một cây xanh.
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 27
Trang 30DO AN TOT NGHIỆP
2.2.3 Thiết kế chi tiết[1]
a Use case chi tiết
CHUONG II PHAN TICH VA THIET KE UNG DUNG
¡ <<Include>>
' h
| <<Extend>> Come)
Hình 2 3 Use case chi tiết Unit 1 Save Earth
Mô ta use case:
e Trở lại màn hình Home: UC này cho phép user kết thúc bài hoc và trở về
lại màn hình chính.
e Chon đáp án: UC này cho phép user lựa chọn dap án.
e Hiền thị câu hỏi: UC này cho phép user xem nội dung câu hỏi
e _ Di chuyên xe rác: UC cho phép di chuyên xe rác đên vi trí đê dọn rác.
e Don rác: UC cho phép dọn rác thải.
b Kịch ban
Tén use case Hoc Unit 1.
Tac nhân User
Muc dich Vao bai hoc Unit 1.
Tiên điều kiện User đang ở màn hình chính.
Mô tả luồng sự
kiện chính
1 User nhấn chọn nút Unit 1
2 Hệ thống hién thi chủ đề của bai học và nút bắt dau
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03
Trang 31DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
User click chọn nút bat đầu
User click chon một dap án.
1.
8.
9.
10 Hệ thống hién thị kết quả gồm: số điểm, thời gian và nút
11 User click chọn nút quay về màn hình chính
Hệ thống hiền thị: có 5 câu hỏi, 4 bốn đáp án và phần game
gôm xe rác và các loại rác thải.
Hệ thống hiển thị đáp án đúng và nút câu hỏi kế tiếp
6.1 User trả lời đúng: hệ thống sẽ đi chuyền xe rác tới vị trírác thải để dọn
6.2 User trả lời sai: hệ thống bôi đỏ đáp án sai và bôi xanh
đáp án đúng.
User click chọn nút câu hỏi kế tiếp
Hệ thống quay lại bước 4
User tra lời hêt câu hỏi.
1 1d int Ma cau hoi.
2 result int Dap an dung.
3 quest string Nội dung cau hỏi.
Trang 32DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
string Đáp án D.
Bảng 2 2 Bảng mô tả lớp UI_QuestMng.cs STT Tên thuộc tinh Kiêu dữ liệu Nội dung
1 obj_nextBT GameObject Nút chuyền câu hỏi
2 questData Quest Dữ liệu câu hoi.
3 IstQuestInUse List<QuestInfor> Danh sách những câu
hỏi được sử dụng.
4 obj_btnEndQuest | GameObject Nút kết thúc bài hoc
5 questDisplay QuestDisplay Lớp thực hiện hiển thị
câu hỏi.
6 rect_trashCar RectTransform Vi trí của xe trở rác.
7 IstTrash List<RectTransform> VỊ trí của các rác thai.
8 IstTree List<RectTransform> Vi tri của các cây
xanh.
9 obj_result GameObject Kết qua của bai học
10 t_score Text Hiển thị số điểm
11 t time Text Hiển thị số thời gian
của người chơi.
12 _currentQuest int Số câu hỏi hiện tại
13 numRightAns int Số lượng câu hỏi đúng
14 countTime float Biến đếm thời gian
Trang 33DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
Bang 2 3 Bang mô ta lop QuestDisplay.csSTT Tên thuộc tính Kiểu dữ liệu Nội dung
1 obj_Content GameObject Giao dién cau hoi.
2 t_quest Text Hién thi câu hỏi
3 t numberQuest TextMeshProUGUI Hiển thi câu hỏi hiện
tại và tổng số câuhỏi.
4 t_ansA Text Hién thi dap an A
5 t_ansB Text Hién thi dap an B
6 t_ansC Text Hién thi dap an C.
7 t_ansD Text Hién thi dap an D
8 IstBGAnsBT List<Image> Danh sach hinh anh
cac nut dap an.
9 cl_normalAns Color32 Mau nút đáp án ở
d Biéu đồ lép thực thé pha phân tích
¢ Mỗi một UI_QuestMng quản lý nhiều QuestInfor và một QuestInfor được
quan lý bởi một UI QuestMng nên quan hệ giữa UI QuesrMng và
QuestInfo là 1-n.
Trang 34DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
e Mỗi một UI_QuestMng quản lý một QuestDisplay và một QuestDisplay
được quản lý bởi một UI_ QuestMng nên quan hệ giữa UI_QuestMng va
QuestInfo là 1-1.
Hình 2 4 Biểu đô lóp thực thé Unit 1
e Biéu đồ lóp thực thé pha thiết kế
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 32
Trang 35DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
4: an nut ket thuc.
Hình 2 6 Biểu đô tuần tự Unit 1
g Giao điện chơi
Cộng Trừ Số Có 3 Chữ Số
(không n Hãy giúp tớ dọn sạch rác thải
bằng cách trả lời đúng các
câu hỏi!
Hình 2 7 Phan mở dau game Save Earth
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 33
Trang 36DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
e Giao diện man học chính.
Hình 2 8 Giao diện chính game Save Earth
Trong giao diện bao gồm các rác thải, khi người học trả lời đúng thì rác sẽđược đưa vào trong xe rác và đồng thời sẽ có cây xanh mọc lên
public int id;
public int result;
public string quest;
Trang 37DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
[SerializeField] private GameObject obj Content;
[SerializeField] private Text t_quest;
[SerializeField] private TextMeshProUGUI t_numberQuest;
[SerializeField] private Text t_ansA;
[SerializeField] private Text t_ansB;
[SerializeField] private Text t_ansC;
[SerializeField] private Text t_ansD;
[SerializeField] private List<Image> lstBGAnsBT;
[SerializeField] private Color32 cl_normalAns;
[SerializeField] private Color32 cl_rightAns;
[SerializeField] private Color32 cl_wrongAns;
questDisplay.TAnsA.text = lstQuestInUse[_currentQuest] A;
questDisplay.TAnsB.text = 1stQuestTnUse[_ currentQuest].B;
questDisplay.TAnsC.text = 1stQuestTnUse[_ currentQuest].C;
questDisplay.TAnsD.text = lstQuestInUse[ currentQuest] D;
ResetBGOfButtonAns ();
obj nextBT.SetActive (false);
chosed = false;
}
e Phương thức: ChoseBT(int index)
Phương thức nay thực hiện xác nhận người choi đã nhắn vào đáp án nao
và thực hiện so sánh đáp án người chơi chọn với đáp án đúng Nếu người chơichọn đúng, nút đáp án sẽ chuyên sang màu xanh, rác sẽ được di chuyển vào
thùng và đồng thời sẽ mọc thêm một cây xanh trên trái đất Ngược lại nếu chọn
sai, đáp án đúng sẽ hiển thị màu xanh và đáp án người choi chọn sẽ được hiểnthị thành màu đỏ.
Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 35
Trang 38DO AN TOT NGHIỆP CHUONG II PHAN TICH VA THIET KE UNG DUNG
public void ChoseBT(int index)
-})z }
else
{
SoundMng.singleton.PlayAudio (E_TypeAudio.wrongAns) ; questDisplay.LstBgAnsBt [index - 1].color =