Đã qua rồi cái thời khi mà mọi người còn nhìn nhận Game là một điều gì đó không tốt, cần phải tránh xa. Giờ đây xã hội phát triển, suy nghĩ mọi người cũng bắt đầu thoáng dần. Game cũng từ đó mà dần du nhập vào đời sống hàng ngày của mọi người và trở thành 1 phần không thể thiếu trong cuộc sống. Game không còn chỉ là một thứ vô bổ nữa, game giúp người phát triển game kiếm được thu nhập, giúp người chơi có những giờ phút vui vẻ sau những giờ làm việc, học tập căng thẳng. Bằng chứng rõ nhất là ngành công nghiệp Game trong năm 2021 đã mang về hơn 189 tỷ đô cho các nhà phát triển Game, gần 3 tỷ người chơi, cùng với đó Olympic và SeaGame cũng đều đưa vào những tựa Game nổi tiếng như một môn thi đấu thể thao. Điển hình là môn thể thao điện tử của SeaGame 3 được tổ chức tại Việt Nam, đội tuyển Việt Nam chúng ta đã xuất sắc dành tới 4 huy chương vàng và 3 huy chương bạc trong tổng số 10 tựa Game được thi đấu chính thức. Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệ ngày càng chịu sự đánh giá khắt khe hơn từ phía người dùng, đặc biệt là về sản phẩm Game nhận được rất nhiều sự đánh giá của người chơi. Ngành công nghiệp Game hiện nay có thể nói là bùng nổ, với tốc độ phát triển đến chóng mặt, nhất là trong thời gian diễn ra đại dịch Covid 19, khi mà mọi người đều làm việc tại nhà và có nhiều thời gian rảnh hơn, chính vì thế mà nhu cầu giải thì cũng tăng cao, rất nhiều những Game hay và hấp dẫn đã được ra đời trong thời gian qua. Phía sau những Game phát triển và hấp dẫn như vậy đề có một Game Engine. Game Engine là một công cụ hỗ trợ, một Middleware giúp người phát triển viết Game một các nhanh chóng và đơn giản, đồng thời cung cấp khả năng tái sử dụng các tài nguyên và mã nguồn cao do có thể phát triển nhiều game từ một Game Engine. Chính vì những lý do trên mà chúng em muốn chọn đề tài phát triển game sử dụng công cụ Unity Engine để thử sức bản thân với ngành công nghiệp mới mẻ này.
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN -
BÁO CÁO THỰC TẬP DOANH NGHIỆP
XÂY DỰNG GAME THE FARMER SỬ DỤNG CÔNG CỤ
UNITY ENGINE NGÀNH KỸ THUẬT PHẦN MỀM
GVHD:
Sinh viên:
Lớp: Khóa:
Hà Nội – 2023
Trang 2BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN -
BÁO CÁO THỰC TẬP DOANH NGHIỆP
XÂY DỰNG GAME THE FARMER SỬ DỤNG CÔNG CỤ
UNITY ENGINE NGÀNH KỸ THUẬT PHẦN MỀM
GVHD:
Sinh viên:
Lớp: Khóa:
Hà Nội – 2023
Trang 3LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới thầy XXX Trong
quá trình học tập và thực hiện đề tài này, chúng em đã nhận được sự quan tâm giúp đỡ, hướng dẫn tận tình, tâm huyết của thầy Những gì chúng em nhận được không chỉ dừng lại ở kiến thức môn học mà nhiều hơn thế đó là những lời khuyên, chia sẻ thực tế từ thầy Chính nhờ phương pháp dạy học của thầy mà chúng em có cơ hội khám phá và phát huy khả năng của bản thân Những buổi thuyết trình chính là cơ hội tuyệt vời giúp chúng em rèn luyện sự tự tin, kỹ năng giao tiếp, làm việc nhóm Đây cũng chính là hành trang quan trọng giúp chúng em tự tin bước chân vào môi trường làm việc thực tế
Để hoàn thành được đề tài này, nhóm chúng em đã cố gắng hết sức, cùng nhau nghiên cứu, thảo luận, áp dụng những kiến thức được học trên lớp cùng với các nguồn tài liệu khác nhau trên Internet Chúng em rất mong
sẽ nhận được những lời nhận xét, góp ý từ thầy cô và bạn đọc để đề tài này
có thể hoàn thiện hơn nữa
Một lần nữa, chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện.
Trang 4Mục lục
LỜI CẢM ƠN 1
DANH MỤC HÌNH ẢNH 4
Mở Đầu… 7
1 Lý do chọn đề tài 7
2 Mục tiêu nghiên cứu 7
3 Đối tượng nghiên cứu 8
4 Phạm vi nghiên cứu 8
5 Kết quả mong muốn 8
6 Cấu trúc báo cáo 8
Nội Dung… 9
Chương 1 Cơ sở lý thuyết 9
1.1 Unity là gì? 9
1.2 Lịch sử hình thành và phát triển của Unity 9
1.3 Các đặc điểm và tính năng của Unity 10
1.4 Các thành phần trong Unity 12
1.5 Giao diện của Unity 16
Chương 2 Phân tích thiết kế hệ thống 23
2.1 Thiết kế hệ thống 23
2.2 Mô tả game 38
2.3 Gameplay 39
2.4 Mechanic 41
2.5 Tài Nguyên 42
2.5 Màn Chơi 50
Chương 3 Game The Farmer 51
Trang 53.1 Giới thiệu game 51
3.2 Cài đặt và thử nghiệm 53
KẾT LUẬN VÀ KIẾN NGHỊ 58
TÀI LIỆU THAM KHẢO 5 Y
Trang 6DANH MỤC HÌNH ẢNH
Hình 1 Mô tả 1 file Assets trong Project 12
Hình 2 Mô tả Scenes trong Unity 13
Hình 3 Mô tả Game Object trong Unity 14
Hình 4 Mô tả các Components của 1 Game Object 15
Hình 5 Mô tả các Script trong Unity 16
Hình 6 Mô tả Prefabs trong Unity 16
Hình 7 Giao diện của Unity 17
Hình 8 Mô tả Scene trong Unity 18
Hình 9 Các nút chức năng cho cửa sổ Scene 18
Hình 10 Cửa sổ Hierarchy 19
Hình 11 Cửa sổ Inspector 20
Hình 12 Cửa sổ Project 21
Hình 13 Các loại tỉ lệ màn hình trong của sổ Game 22
Hình 14 Cửa sổ Game với tỉ lệ màn hình 1920x1080 22
Hình 15 Luồng Flow cho Player 23
Hình 16 UC “Playgame” 25
Hình 17 UC “Obstacles” 26
Hình 18 UC “Coin” 27
Hình 19 UC “GameOver” 27
Hình 20 UC “ChooseLevel” 28
Hình 21 UC “PlayerMove” 29
Hình 22 UC “Pause” 30
Hình 23 UC “Restart” 30
Hình 24 UC “MainMenu” 31
Hình 25 UC “QuitGame” 32
Hình 26 UC “PickUPCoin” 32
Trang 7Hình 27 UC “PlayerJump” 33
Hình 28 UC “Enemies” 34
Hình 29 UC “EnemiesMove” 35
Hình 30 UC “KillEnemies” 35
Hình 31 UC “PickUpFoods” 36
Hình 32 UC “Food” 37
Hình 33 UC “PlayerShoot” 37
Hình 34 UC “ChooseLevel” 38
Hình 35 Di chuyển trong The Farmer 39
Hình 36 Di chuyển trong Feed Animal 40
Hình 37 Tấn công trong Feed Animal 40
Hình 38 Điểm trong game 41
Hình 39 Modle The Farmer 43
Hình 40 Modle người nông dân (nhân vật chính) 43
Hình 41 Model Enemy 44
Hình 42 Model Food 44
Hình 43 Model Coin 45
Hình 44 Các trạng thái Animation của nhân vật 46
Hình 45 Giao diện UI trong game 47
Hình 46 Sự khác biệt khi sử dụng các asset UI 47
Hình 47 UI sử dụng trong game 48
Hình 48 Audio trong game Helltaker 49
Hình 49 Âm thanh sử dụng trong game 49
Hình 50 Âm thanh sử dụng trong game 50
Hình 51 Flow Màn hình trò chơi 50
Hình 52 Menu game 52
Hình 53 Level The Farmer 52
Trang 8Hình 54 Màn chơi Feed Animal 53 Hình 55 Màn hình Build Game 54
Trang 9Mở Đầu
1 Lý do chọn đề tài
Đã qua rồi cái thời khi mà mọi người còn nhìn nhận Game là một điều
gì đó không tốt, cần phải tránh xa Giờ đây xã hội phát triển, suy nghĩ mọingười cũng bắt đầu thoáng dần Game cũng từ đó mà dần du nhập vào đờisống hàng ngày của mọi người và trở thành 1 phần không thể thiếu trongcuộc sống Game không còn chỉ là một thứ vô bổ nữa, game giúp người pháttriển game kiếm được thu nhập, giúp người chơi có những giờ phút vui vẻsau những giờ làm việc, học tập căng thẳng Bằng chứng rõ nhất là ngànhcông nghiệp Game trong năm 2021 đã mang về hơn 189 tỷ đô cho các nhàphát triển Game, gần 3 tỷ người chơi, cùng với đó Olympic và SeaGamecũng đều đưa vào những tựa Game nổi tiếng như một môn thi đấu thể thao.Điển hình là môn thể thao điện tử của SeaGame 3 được tổ chức tại ViệtNam, đội tuyển Việt Nam chúng ta đã xuất sắc dành tới 4 huy chương vàng
và 3 huy chương bạc trong tổng số 10 tựa Game được thi đấu chính thức
Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệngày càng chịu sự đánh giá khắt khe hơn từ phía người dùng, đặc biệt là vềsản phẩm Game nhận được rất nhiều sự đánh giá của người chơi Ngànhcông nghiệp Game hiện nay có thể nói là bùng nổ, với tốc độ phát triển đếnchóng mặt, nhất là trong thời gian diễn ra đại dịch Covid 19, khi mà mọingười đều làm việc tại nhà và có nhiều thời gian rảnh hơn, chính vì thế mànhu cầu giải thì cũng tăng cao, rất nhiều những Game hay và hấp dẫn đãđược ra đời trong thời gian qua Phía sau những Game phát triển và hấp dẫnnhư vậy đề có một Game Engine Game Engine là một công cụ hỗ trợ, mộtMiddleware giúp người phát triển viết Game một các nhanh chóng và đơngiản, đồng thời cung cấp khả năng tái sử dụng các tài nguyên và mã nguồn
cao do có thể phát triển nhiều game từ một Game Engine Chính vì những lý
do trên mà chúng em muốn chọn đề tài phát triển game sử dụng công cụUnity Engine để thử sức bản thân với ngành công nghiệp mới mẻ này
2 Mục tiêu nghiên cứu
- Nghiên cứu về ngôn ngữ C#
- Nghiên cứu về công cụ phát triển game Unity Engine
- Nắm bắt được quy trình phát triển ra một trò chơi
Trang 10- Tìm hiểu được thị hiếu của Game thủ để có thể ra ý tưởng những tựaGame chất lượng.
3 Đối tượng nghiên cứu
Sử dụng ngôn ngữ C# và công cụ Unity Engine để phát triển game
Sử dụng Play Testing để kiểm thử game
Sử dụng kiến thức đã học trên trường để tham gia quá trình phát triển
4 Phạm vi nghiên cứu
Trong thời gian diễn ra quá trình thực tập doanh nghiệp tại trường đạihọc Công Nghiệp Hà Nội
5 Kết quả mong muốn
- Phát triển trò chơi trên Unity Engine sử dụng ngôn ngữ C#
- Áp dụng được những kiến thức và kỹ năng của các môn đã học trêntrường có liên quan đến phát triển phần mềm như: Lập trình Net, Phântích đặc tả, thiết kế giao diện, phát triển ứng dụng game…
- Nắm bắt được quy trình phát triển ra một trò chơi
- Tìm hiểu được thị hiếu của Game thủ để có thể ra ý tưởng những tựaGame chất lượng
6 Cấu trúc báo cáo
Nội dung chính đề tài gồm 3 chương
Chương 1: Cơ sở lý thuyết
Giới thiệu về công cụ Unity Engine, lịch sử hình thành và phát triển.Các chức năng của công cụ
Chương 2: Phân tích thiết kế hệ thống
Bao gồm mô tả game, gameplay, game mechanic, các tài nguyên sửdụng trong game và thiết kế màn chơi
Chương 3: Game The Farmer
Giới thiệu game The Farmer, hướng dẫn cài đặt
Trang 113 chiều đầy huyền ảo Công nghệ cao này tạo ra một bước đột phá mới về
sự khác biệt trong công nghệ làm game hiện nay, mang đến cho ngườichơi 1 cảm giác rất khác lạ và hào hứng trong từng chuyển động, tươnglai công nghệ này được áp dụng vào Việt Nam sẽ mở ra một trang mớitrong thế giới game 2D, 3D
Unity được dùng để làm video game, hoặc những nội dung có tínhtương tác như thể hiện kiến trúc, hoạt hình 2D, 3D thời gian thực Unityhao hao với Blender Game Engine, Virtools hay Torque Game Buildertrong khái cạnh dung môi trường đồ họa tích hợp ở quá trình phát triểngame là chính
Unity là một trong những engine được giới làm game không chuyêncực kỳ ưa chuộng bởi khả năng tuyệt vời của nó là phát triển trò chơi đanền tảng Trình biên tập có thể chạy trên Windows và Mac OS, và có thểxuất ra game cho Window, Mac, Wii, IOS, Android, đồng thời cũng cóthể chơi trên trình duyệt web thông qua plugin Unity Web Player Unitymới bổ sung khả năng xuất ra game trên cả console như Xbox,PlayStation
1.2 Lịch sử hình thành và phát triển của Unity
1.2.1 Hình thành
Phần lõi của Unity ban đầu được viết bởi Joachim Ante vào năm
2001 Sau đó công ty được hình thành vào năm 2005 và bắt đầu với phiên
Trang 12bản 1.0 Đến năm 2007, Unity được nâng lên phiên bản 2.0 Unity bắtđầu hỗ trợ Iphone vào năm 2008 Vào tháng 6/2010, Unity chính thức hỗtrợ Android và cho ra đời phiên bản 3.0 và bây giờ là phiên bản Unity2020.3.31f1 Có thể thấy tốc độ phát triển của Unity khá nhanh.
1.2.2 Giải thưởng
Unity đã đoạt được nhiều giải lớn với những giải chính sau :
+ “Best Use of Max OS X Graphic” tại Apple’s WWDC vào năm 2006+ Nằm trong “Top 5 công ty game của năm” do Gamasuta tổ chức năm2009
+ “Best Engine Finalist” do Develop Magazine bình chọn năm 2012+ Tháng 7/2014, Unity đã đạt giải "Best Engine" tại liên hoan trao giảithưởng công nghệ hàng năm của Anh
Unity 5 cũng nhận được những lời khen tương tự, với The Verge đã nóirằng "Unity giúp việc phát triển game trở nên dễ dàng và phổ biến Unity 5 là một bước tiến đáng mong đợi trong tương lai."
1.2 Các đặc điểm và tính năng của Unity
1.3.1 Rendering (Kết xuất hình ảnh)
Giống như tất cả cá Engine hoàn chỉnh khác, Unity hỗ trợ đầy đủ khảnăng kết xuất hình ảnh (Rendering) cùng nhiều hỗ trợ cho phép áp dụngcác công nghệ phổ biến trong lĩnh vực đồ họa 3D nhằm cải thiện chấtlượng hình ảnh Các phiên bản gần đây nhất của Unity được xây dựng lạithuật toán nhằm cải thiện hiệu suất kết xuất hình ảnh đồng thời tăngcường chất lượng hình ảnh sau khi kết xuất
1.3.2 Lighting (Ánh sáng)
Ánh sáng là một điều thiết yếu giúp môi trường trở nên đẹp và thực tếhơn Unity cũng cung cấp nhiều giải pháp đa dạng cho phép chúng ta ápdụng ánh sang một cách tốt nhất vào môi trường trong trò chơi với nhiều
Trang 13loại nguồn sang như ánh sang có hướng, ánh sang điểm,… một số côngnghệ và kỹ thuật về ánh sang được Unity hỗ trợ : Realtime Shadows, hiệuứng Sunshafts và Lens Flares
mẽ cho phép chúng ta tọa ra cây cối với hình dạng, kích thước và kiểucách đa dạng
1.3.4 Physics (Vật lý)
PhysX là một Engine mô phỏng và xử lí vật lý cực kỳ mạnh mẽ đượcphát triển bời nhà sản xuất card đồ họa hàng đầu thế giới NVIDIA Unity
đã tích hợp Engine này vào để đảm nhận mọi vấn đề vật lý Một số vấn
đề vật lý được hỗ trợ bởi Unity như: Soft Bodies, Rigitbodies, Ragdolls,Joints, Cars
1.3.5 Audio (Âm thanh)
Về âm thanh, Unity tích hợp FMOD – một công cụ âm thanh thuộchàng mạnh nhất hiện nay Qua đó Unity hỗ trợ chúng ta nhập và sử dụngđịnh dạng tập tin âm thanh khác nhau
1.3.6 Programming (Lập trình)
Lập trình là một trong những yếu tố quan trọng nhất trong phát triểnGame Lập trình cho phép nhà phát triển tạo nên khả năng tương tác, tríthông minh và yếu tố Gameplay cho trò chơi
Trang 14Unity cho phép chúng ta lập trình bằng nhiều ngôn ngữ mạnh mẽ vàphổ biến với các lập trình viên như: C#, Java Script và Boo.
1.3.7 Networking
Networking cho phép chúng ta tạo ra các trò chơi trực tuyến (online) –một trong những thể loại trò chơi thu hút được nhiều người chơi nhất.Tính năng này sẽ hỗ trợ đầy đủ để chúng ta tạo nên các khía cạnh phổbiến trong Game online như hệ thống điểm kinh nghiệm, chat và tươngtác thời gian thực…
1.4 Các thành phần trong Unity
1.4.1 Assets
Assets là những tài nguyên xây dựng nên một dự án Unity Từ nhữngtập tin hình ảnh, mô hình 3D đến những tập tin âm thanh Unity gọi cáctập tin mà chúng ta dung để tạo nên trò chơi là tài sản ( Assets ) Điềunày lí giải tại sao tất cả các tập tin, thư mục của dự án Unity đều đượclưu trữ trong một thư mục có tên là “Assets”
Hình 1 Mô tả 1 file Assets trong Project
1.4.2 Scenes
Trong Unity, chúng ta cần hiểu một cảnh (hay một phân đoạn) nghĩa
là một màn chơi riêng biệt hoặc một khu vực hay thành phần có trong nộidung của trò chơi (Ví dụ như Menu) Bằng cách tạo nên nhiều Scenes
Trang 15cho trò chơi, chúng ta có thể phân phối thời gian tải hoặc kiểm tra cácphần khác nhau của trò chơi một các riêng rẽ.
Hình 2 Mô tả Scenes trong Unity
Trang 16Hình 3 Mô tả Game Object trong Unity
1.4.4 Components
Components có nhiều hình thức khác nhau Chúng ta có thể xác địnhhành vi, cách xuất hiện,… hay ảnh hưởng đến các khía cạnh khác trongchức năng của Game Object trong trò chơi Bằng các “Gắn” chúng vàotrong Game Object, chúng ta ngay lập tức có thể áp dụng tác động củachúng lên đối tượng Những Components phổ biến trong quá trình pháttriển trò chơi đều được Unity hỗ trợ sẵn Ví dụ như thành phầnRigidbody đã được đề cập hay các yếu tố đơn giản khác như ánh sang,Camera và nhiều thành phần khác Để tạo nên các yếu tố tương tác trongtrò chơi, chúng ta sẽ sử dụng Script (mã kịch bản), chúng cũng được xemnhư là một Components trong Unity
Trang 17Hình 4 Mô tả các Components của 1 Game Object
1.4.5 Scripts
Được Unity xem như một Components, Script là một thành phần thiếtyếu trong quá trình phát triển trò chơi và đáng được đề cập đến như mộtkhái niễm “chìa khóa” Unity cung cấp cho chúng ta khả năng viết Scriptbằng cả 3 loại ngôn ngữ là : JavaScript, C# và Boo ( một dẫn xuất củaPython)
Unity không đòi hỏi chúng ta phải học làm thế nào để lập trình trongUnity, nhưng hầu như chúng ta phải sử dụng Script tại mỗi thành phầntrong kịch bản mà chúng ta phát triển Unity đã xây dựng sẵn một tậphợp đa dạng các lớp, hàm mà chúng ta hoàn toàn có thể ứng dụng trongquá trình lập trình cho trò chơi của mình
Để viết Script, chúng ta sẽ làm việc với một trình biên tập Script độclập của Unity, ví dụ như Visual Studio là chương trình thích hợp và đồng
bộ với Unity và được sử dụng trong những phiên bản mới nhất hiện nay
Trang 18Hình 5 Mô tả các Script trong Unity
1.4.6 Prefabs
Prefabs cho phép chúng ta lưu trữ các đối tượng với nhữngComponents và những thiết đặt hoàn chỉnh Prefabs chỉ đơn giản là mộtContainer (một đối tượng chứa) rỗng mà chúng ta có thể đưa bất kì mộtđối tượng hay dữ liệu mẫu nào mà chúng ta muốn tái sử dụng về sau
Hình 6 Mô tả Prefabs trong Unity
1.5 Giao diện của Unity
1.5.1 Giao diện
Giao diện của Unity có khả năng tùy chỉnh bố trí tương tự như nhiềumôi trường làm việc khác Dưới đây là 1 kiểu bố trí điển hình trongUnity
Trang 19Hình 7 Giao diện của Unity
Scene (1): Nơi mà trò chơi được xây dựng
Hierachy (2): Danh sách các Game Object trong scene
Inspector (3): Những thiết lập, thành phần, thuộc tính của đối tượng(hoặc Asset) đang được chọn
Game (4): Cửa số xem trước, nó chỉ hoạt động trong chế độ “Play”(Preview – xem trước)
Project (5): Danh sách các Assets của dự án, được ví như thư viện của
Dự án
1.5.2 Cửa sổ Scene và Hierarchy
Cửa sổ scene là nơi mà chúng ta sẽ xây dựng các thực thể, đối tượngcủa dự án vào đó Cửa sổ cung cấp góc nhìn phối cảnh (Perspective),chúng ta có thể chuyển qua các góc nhìn khác nhau từ trên xuống hoặc từdưới lên (Top Down), từ trái qua phải hoặc phải qua trái (Side On), từ
Trang 20trước ra sau hoặc từ sau đến trước (Front On) Cửa sổ này sẽ kết hìnhxuất đầy đủ những hình ảnh trong thế giới của trò chơi mà chúng ta tạo radưới dạng một vùng biên tập mà chúng ta có thể biên tập, chỉnh sửa trựctiếp thế giới đó.
Hình 8 Mô tả Scene trong Unity
Khi kéo thẻ Asset và cửa sổ Scene, Assets sẽ trở thành Game Object.Cửa sổ Scene được rang buộc cùng với cửa sổ Hierachy, cửa sổ Hierachyliệt kê danh sách các Game Object có trong Scene và được sắp xếp theothứ tự chữ cái A-Z
Hình 9 Các nút chức năng cho cửa sổ Scene
Cửa sổ Scene còn đi kèm với 4 nút chức năng chính hữu ích đượchiển thị dưới dạng hình ảnh như trên Chúng ta có thể lựa chọn thông quacác phím tắt Q,W,E và R
Công cụ bàn tay (Q) : Công cụ này cho phép chúng ta di chuyển đếnmột khu vực nào đó trong Scene bằng các kéo thả chuột trái
Công cụ di chuyển (W) : Công cụ này cho phép chúng ta chọn mộtđối tượng trong cảnh và thực hiện thao tác di chuyển, thay đổi vị trí củađối tượng đó Khi chọn, tại vị trí của đối tượng sẽ hiển thị các trục và mặt
Trang 21phẳng gắn liền với đối tượng Cho phép chúng ta di chuyển đối tượngtheo các trục, mặt phẳng hoặc tùy ý.
Công cụ xoay (E): Công cụ này có đặc điểm và cách sử dụng như(W), tuy nhiên thay vì di chuyển vị trí của đối tượng thì công cụ này giúpchúng ta xoay đối tượng theo trục hay tâm của đối tượng
Công cụ chỉnh tỉ lệ (R) : Cũng tương tự như công cụ di chuyển vàxoay, công cụ này cho phép chúng ta tùy chỉnh kích thức, tỉ lệ đối tượng
Hình 10 Cửa sổ Hierarchy
1.5.3 Cửa sổ Inspector
Cửa sổ Inspector có thể được xem như một công cụ cho phép chúng tatùy chỉnh các thiết đặt, các thành phần của Game Object hoặc Assetsđang được chọn
Cửa sổ này sẽ hiển thị đầy đủ các Components của đối tượng màchúng ta chọn Nó cho phép chúng ta điều chỉnh các biến củaComponents dưới các hình thức như : Textbox, Slider, Button, Drop-down Menu,
Trang 22Ngoài việc hiển thị các Component của đối tượng được chọn, cửa sổInspector còn hiển thị các thiết đặt chung của hệ thống hay của trò chôikhi ta chọn chúng từ menu Edit.
Hình 11 Cửa sổ Inspector
Trong hình trên, chúng ta thấy cửa sổ Inspector đang hiển thị một vàithuộc tính, Components của đối tượng đang được chọn Trong đó, baogồm 3 Components là Transform, Animator, Script (được đặt tên làCharacter Controller để dễ làm việc hơn) Các Components này còn cóthể được tạm thời vô hiệu hóa vào bất kỳ lúc nào chúng ta muốn bằng các
bỏ chọn Checkbox ở góc bên trái Ngoài ra, cửa sổ Inspector còn chophép chúng ta vô hiệu hóa toàn bộ một đối tượng đang được chọn bằngcách bỏ chọn Checkbox ở trên cùng góc trái của cửa sổ Inspector
1.5.4 Cửa sổ Project
Cửa sổ Project là cửa sổ cho phép chúng ta nhìn thấy trực tiếp nộidung của thư mục Assets của dự án Mỗi dự án Unity đều được chứa
Trang 23trong một thư mục cha Trong đó có 3 thư mục con là Assets, Library vàTemp (chỉ có khi Unity đang chạy) Đặt tất cả các Assets vào thư mụcAssets có nghĩa là ngay lập tức sẽ thấy chúng xuất hiện trong cửa sổProject Ngoài ra, khi thay đổi vị trí của Assets trong thư mục Assets haylưu tập tin lại từ một chương trình thứ 3 nào khác (ví dụ như Photoshop),
sẽ làm cho Unity nhập lên (Re-Import) Assets, phản ánh sự thay đổi nàyngay lập tức trong cửa sổ Project và Scene có sử dụng Assets vừa đượcthay đổi
Cửa sổ Projetc được tích hợp nút Create, nút này cho phép chúng tatọa mới bất kì một Assets mới nào, ví dụ như Script, Prefabs, Materials,
Trang 24Hình 13 Các loại tỉ lệ màn hình trong của sổ Game
Sau khi nhấn vào nút Play, chúng ta sẽ ở chế độ Testing, lúc này mọithay đổi về thuộc tính, Components… của đối tượng sẽ chỉ là tạm thời Tức
là chúng sẽ trở về ban đầu (trước khi ấn Play) sau khi kết thúc chế độTesting
Hình 14 Cửa sổ Game với tỉ lệ màn hình 1920x1080
Trang 25Chương 2 Phân tích thiết kế hệ thống2.1 Thiết kế hệ thống
Biểu đồ UC
Hình 15 Luồng Flow cho Player
Danh sách các Actor
Player Người điều khiển toàn bộ trò
chơi
Trang 26Danh sách các Use-case
ST
T
1 PlayGame Use case giúp người chơi bước vào
4 GameOver Use case hệ thống sẽ thông báo trò
chơi kết thúc và hiện số điểm đã đạtđược khi người chơi điều khiển nhânvật bị chạm vào chướng ngại vật
5 ChooseLevel Use case làm cho người chơi chọn
các cấp độ khó của game (easy,normal, hard)
6 PlayerMove Use case giúp người chơi có thể di
chuyển nhân vật của mình (sang tráihoặc phải)
7 PlayerJump Use case giúp nhân vật của người
chơi có thể nhảy hoặc nhảy cao đểtránh chướng ngại vật
8 PickUpCoins Use case khi người chơi điều khiển
nhân vật nhảy lên ăn được nhữngđồng xu sẽ được cộng điểm
9 Pause Use case giúp người chơi có thể tạm
dừng trò chơi
10 Main menu Use case giúp người chơi có thể thoát
Trang 27ra ngoài menu chính
11 Quit game Use case giúp người chơi có thể thoát
hẳn khỏi trò chơi
12 Restart Use case giúp người chơi có thể bắt
đầu lại một ván chơi mới
13 Enemies Use case hệ thống tạo ra kẻ địch
14 EnemiesMove Use case làm cho kẻ địch di chuyển
về phía nhân vật người chơi
15 PlayerShoot Use case giúp người chơi cho nhân
vật bắn đạn về phía kẻ địch
16 KillEnemies Use case khi người chơi bắn trúng kẻ
địch sẽ bị tiêu diệt
17 Food Use case hệ thống tạo ra thức ăn
18 PickUpFoods Use case khi người chơi di chuyển
nhân vật để ăn thức ăn sẽ được cộngmáu
19 ChooseMode Use case cho phép người chơi chọn
Trang 28Người thực hiện Player
Tiền điều kiện Use case “ChooseMode” đã được thực hiện
Luồng cơ bản Hệ thống sẽ cho người chơi chọn độ khó của trò
Người thực hiện Server
Tiền điều kiện Người chơi đã bắt đầu màn chơi
Luồng cơ bản Hệ thống sẽ phát sinh ra các chướng ngại vật tại các
vị trí ngẫu nhiên trên bản đồ trò chơi
Luồng rẽ nhánh Không
Hậu điều kiện Nếu use case thành công,chướng ngại vật sẽ được
tạo ngẫu nhiên trên bản đồ trò chơi
Use-case “Coin”
Trang 29PlayGame Coin
<<include>>
Hình 18 UC “Coin”
Mô tả Use case hệ thống sẽ tạo ra những đồng xu lại vị trí
ngẫu nhiên trên bản đồNgười thực hiện Server
Tiền điều kiện Yêu cầu người chơi nhấn vào nút “Play”
Luồng cơ bản B1 : Người chơi nhấn vào nút “Play”
B2 : Hệ thống sẽ phát sinh ra các đồng xu ở các vịtrí ngẫu nhiên tại bản đồ
Luồng rẽ nhánh Nếu Use case “Play game ” không được thực hiện
thành công thì Use case này cũng không được thựchiện
Hậu điều kiện Nếu use case thực hiện thành công, các đồng xu sẽ
được tạo ra
Use-case “GameOver”
Coin PlayGame
<<include>>
Hình 19 UC “GameOver”
Mô tả Use case hệ thống sẽ thông báo “Game over” khi
người chơi điều khiển nhân vật bị chạm vào cácchướng ngại vật
Người thực hiện Server
Trang 30Tiền điều kiện Khi người chơi đã bắt đầu màn chơi.
Luồng cơ bản B1 : Người chơi điều khiển nhân vật bị chạm vào
các chướng ngại vật
B2 : Hệ thống sẽ thông báo game over và hiện sốđiểm của người chơi và cho phép người dùng bắtđầu lại màn hoặc thoát ra ngoài menu chính
Hình 20 UC “ChooseLevel”
Mô tả Use case giúp người chơi chọn độ khó của game bao
gồm easy, normal, hard
Người thực hiện Player
Tiền điều kiện Use case “ChooseMode” đã được thực hiện
Luồng cơ bản B1 : Người chơi nhấn vào nút “Play game”
B2 : Người chơi chọn một cấp độ khó cho màn chơisắp tới
Luồng rẽ nhánh Không có
Hậu điều kiện Nếu use case thực hiện thành công,người chơi bước
vào trò chơi chính thức
Trang 31Use-case “PlayerMove”
PlayerMove Player
Hình 21 UC “PlayerMove”
Mô tả Use case giúp người chơi có thể di chuyển nhân vật
của mình
Người thực hiện Player
Tiền điều kiện Use case bắt đầu khi người chơi đã bắt đầu mà chơi.Luồng cơ bản Người chơi dung các nút Trái-Phải để di nhân vật
của mình theo hướng mình muốn
Luồng rẽ nhánh Không có
Hậu điều kiện Nếu use case thực hiện thành công, nhân vật của
người chơi sẽ được di chuyển đến vị trí mới
Use-case “Pause”
Pause Player
Hình 22 UC “Pause”
Mô tả Use case giúp người tạm dừng màn chơi
Người thực hiện Player
Tiền điều kiện Khi người chơi đã bắt đầu màn chơi được thực hiện