Chương I Giới thiệu chung: Trong chương này, đồ án sẽ mô tả dé tài, giới thiệu mụ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ới thiệ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 DO 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 DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG 1.1 Giới thiệu bài toán 1.1 Tên đề tài Tên đề tài: Xây dựng ứng dụng học tập DrimLearn bằng Unity.2 Mục tiêu đề tài Mụ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úp cho 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.3 Mục tiêu nghiên cứu Tì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.2 Tong quan về Unity Engine 1.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- flatform game 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ên websites.
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 Worldwide Developer Conference bởi nha sáng lập David Helgason, trai qua hon 12 nă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 DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG nhận là Game engine tốt nhất cho mobile. Năm 2014 Unity thắng giải “Best Engine” tại giải UK’s annual Develop Industry Exellence.2 Ư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ản hơ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 sang những hệ điều hành khác nhau. Đồng thời, đây cũng là giải pháp cho các game 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 HY 4 L1 1 tvOS (lB fireoss Ei g @ Hình 1. 1 Các nên tảng Unity hỗ trợ Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 15 DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG Add Open Scenes Platform x Standalone Don't override 32-bit Default device y Refresh ws Platform Hình 1. 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ên Unity3D khá dé sử dụng.
Hơn nữa, đây là một trong những engine phô biến nhất trên thé giới, người dùng có thé dé dàng tìm kiếm kinh nghiệm sử dụng củ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 DO AN TOT NGHIỆP CHUONG I GIỚI THIỆU CHUNG What game engines do you currently use? 72% Hình 1. Thong kê người dùng Game Engine 1.3 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 sau khi 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 theo ECMA là C#, chỉ bao gồm dấu số thường.
Microsoft phát triển C# dựa trên C++ 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ỗi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC. Phiên bản gần đây nhấ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.
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 DO 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ếu bạ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ừa hưở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. 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.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 DO 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 đối tượng được thêm hoặc xóa trong Sences, tương ứng với các đối tượng đó trong cử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 Rename Duplicate Delete Select Children Set as Default Parent Modern UI Pack Create Empty i 3D Object Physics Circle Effects Tilemap Capsule Light Sprite Shape Isometric Diamond Camera Demigiant Hình 1.
Vi dụ về khởi tao đối tượng trong Hierarchy e_ Cửa số 2: Scene Phần này hiển thị các đối tượng trong scenes một cách trực quan, có thé lựa chọn các đối tượng, kéo tha, phóng to, thu nhỏ, xoay các đối tượng. Scene là nơi bố trí các GameObject như cây cối, cảnh quan, enemy, player, camera,. Sự bố trí hoạt cảnh là một trong những chức năng quan trọng nhất của Unity. e_ Cửa số 3: Game Đây là màn hình demo Game, là góc nhìn từ camera trong game.
Những đôi tượng nào có ở trong khung camera sẽ đêu được hiên thị lên cửa sô game. Nguyễn Văn Đạt - B17DCCN115 - DI7HTTT03 19 DO 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ển thị. Thanh công cụ trong cửa sô game cung cấp các tùy chỉnh về kích thước màn hình, thông số (stats), gizmos, tùy chon bật tắt các component. Display1 * 1820x1080 Portrait vị Scale ®—————————— 034x Maximize On Play | Mute Audio Stats Gizmos | * ¥ Low Resolution Aspect Ratios Free Aspect __ VSyne (Game view only) 800x480 Portrait Drim 800x480 Landscape 1280x720 Portrait J2NUEVSUa 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 bes pe F Christmas ri Eggs Remote (Not Connected) (10x10) (+) Hình 1.
Chon kích thước màn hình e_ Cửa số 4: Inspector Cửa số Inspector hiển thị chỉ tiết các thông tin về GameObject đang duoc 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ủa GameObject 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ỉnh trực tiếp mà không cần thông qua một kịch bản định trước. Tuy nhiên Scripting API 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 DO 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 đang là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.