1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu công nghệ đa nền tảng unity 3d và phát triển ứng dụng hỗ trợ em tự học ghép vần

48 418 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 1,79 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi nhận đề tài, em nhận thấy việc phát triển game mobile với các công cụ hỗ trợ - các game engine - ở trường ĐH CNTT & TT Thái Nguyên còn khá mới mẻ cho nên em nhận đề tài: “Nghiên cứu

Trang 1

LỜI CẢM ƠN

Em xin chân thành cảm ơn bộ môn Công nghệ lập trình và ứng dụng, khoa Công nghệ thông tin, Trường Đại học Công nghệ thông tin và truyền thông Thái nguyên đã tạo điều kiện thuận lợi cho em thực hiện báo cáo này Em xin chân thành cảm ơn Thầy Nguyễn Hải Minh là người đã tận tình hướng dẫn, chỉ bảo cho

em trong suốt thời gian thực hiện báo cáo đồ án tốt nghiệp Em cũng xin gửi lời cảm ơn sâu sắc đến quý thầy cô trong Khoa và Bộ môn đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong những năm học vừa qua Mặc dù

em đã cố gắng hoàn thành báo cáo trong phạm vi và khả năng cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận tình chỉ bảo của quý thầy cô và các bạn

Thái Nguyên, tháng 5 năm 2017

Sinh Viên

Hoàng Quốc Bảo

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan rằng đây là đồ án của em, có sự hỗ trợ từ giáo viên hướng dẫn T.S Nguyễn Hải Minh - bộ môn lập trình ứng dụng, trường Đại Học Công nghệ thông tin và truyền thông Thái Nguyên, Đại Học Thái Nguyên Em xin cam đoan các nội dung nghiên cứu và kết quả trong đề tài này là trung thực và không sao chép

từ các báo cáo thực tập và đồ án khác trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính bản thân thu thập từ các nguồn khác nhau Nếu có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm trước Hội đồng

Thái Nguyên, tháng 5 năm 2017

Sinh Viên

Hoàng Quốc Bảo

Trang 3

MỤC LỤC

MỤC LỤC 3

MỤC LỤC HÌNH ẢNH 5

LỜI NÓI ĐẦU 7

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 8

1.1 Đa nền tảng và các hệ điều hành trên thiết bị di động 8

1.1.1 Giới thiệu về Windows Phone 8

1.1.2 Giới thiệu hệ điều hành Android 9

1.1.3 Giới thiệu về iOS 10

1.2 Game Engine Unity3D 11

1.2.1 Lý do chọn Unity Engine 12

1.2.2 Unity Engine 13

1.2.3 Tổng quan kiến trúc engine Unity 23

1.3 Sơ lược về ngôn ngữ lập trình C# 26

1.4 Giới thiệu công cụ Visual studio 26

1.5 Tổng Quan về phân tích thiết kế hướng đối tượng sử dụng UML 27

1.5.1 Các thành phần của UML 27

1.5.2 Biểu đồ Usecase 28

1.5.3 Biểu đồ lớp(class diagram) 28

1.5.4 Biểu đồ trình tự 29

CHƯƠNG 2: KHẢO SÁT MỘT SỐ GAME MOBILE ĐANG CÓ TRÊN THỊ TRƯỜNG 30

2.1 Khái niệm Game mobile 30

2.2 Đặc điểm của game mobile 30

2.2.1 Tính cơ động và tiện lợi 30

2.2.2 Chi phí thấp 30

2.2.3 Chất lượng 31

2.2.4 Phù hợp với đối tượng nữ giới và trẻ em 31

2.2.5 Phong phú và có giá trị trải nghiệm cao 32

2.3 Một số game tương tự trên thị trường 32

2.3.1 Game Ghép chữ và đánh vần 32

Trang 4

2.3.2 Game Học cách đánh vần và viết 34

2.4 Đề xuất ý tưởng 35

CHƯƠNG 3: PHÂN TÍCH – THIẾT KẾ 36

3.1 Yêu cầu về trò chơi 36

3.2 Phân tích yêu cầu về dữ liệu 36

3.3 Phân tích các yêu cầu chức năng, biểu đồ trường hợp có sẵn 36

3.3.1 Tác nhân 36

3.3.2 Các biểu đồ Usecase 37

3.3.3 Biểu đồ hoạt động 38

3.3.4 Biểu đồ trình tự 39

3.3.5 Biểu đồ lớp 40

3.3.6 Biểu đồ cộng tác 40

CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG GAME XẾP CHỮ 41

4.1 Giới thiệu game 41

4.2 Xây dựng game 41

4.3 Một số hình ảnh trong game 44

4.4 Cách chơi 46

KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN 47

TÀI LIỆU THAM KHẢO 48

Trang 5

MỤC LỤC HÌNH ẢNH

Hình 1.1 Hệ điều hành Windows Phone 7 9

Hình 1.2 Giới thiệu android 9

Hình 1.3 Giới thiệu iOS 10

Hình 1.4 iOS 8 ra mắt với nhiều tính năng hấp dẫn 11

Hình 1.5 Logo Unity3D 13

Hình 1.6 Giao diện Editer của Unity3d 15

Hình 1.7 Các nút điều khiển 15

Hình 1.8 Chọn đối tượng trong Scene và Hierrarchy 16

Hình 1.9 Cửa sổ Inspector hiển thị thông tin một đối tượng 17

Hình 1.10 Asset trong Unity 19

Hình 1.11 Các scene của Unity 20

Hình 1.12 Kéo tài nguyên vào Scene để sử dụng 20

Hình 1.13 Các thành phần trong đối tượng Camera 21

Hình 1.14 Cách tạo file script mới 21

Hình 1.15 Một file script đang gắn vào đối tượng 22

Hình 1.16 Material và Shader 23

Hình 1.17 Tổng quan kiến trúc Unity 24

Hình 1.18 Chu kỳ sống của thành phần script 25

Hình 1.19 Hình ảnh biểu tượng của C# 26

Hình 1.20 Hình ảnh Visual Studio 26

Hình 2 1 Đồ họa game mobile đã được cải tiến rất nhiều 31

Hình 2 2 Các chợ ứng khổng lồ luôn sãn sang phục vụ người dùng 32

Hình 2 3 Game Ghép Chữ Và Đánh Vần 32

Hình 2.4 Giao diện bắt mắt 33

Hình 2.5 Nhưng ngôn ngữ lại là tiếng Anh 33

Hình 2.6 Game học cách đánh vần và viết 34

Hình 2.7 Giao diện của trò chơi 34

Hình 2.8 Ngôn ngữ tiếng Anh và Tây Ban Nha 35

Hình 3 1 Tác nhân Player 36

Hình 3.2 Usecase hệ thống 37

Trang 6

Hình 3.3 Biểu đồ trình tự 39

Hình 3.4 Biểu đồ lớp 40

Hình 3.5 Biểu đồ cộng tác 40

Hình 4.1 Giao diện trò chơi 44

Hình 4.2 Màn chơi 1 44

Hình 4.3.Trả lời chính xác 45

Hình 4.4 Chọn màn chơi 45

Hình 4.5 Xác nhận thoát trò chơi 46

Hình 4.6 Giao diện màn chơi 46

Trang 7

LỜI NÓI ĐẦU

Hiện nay, việc lập trình game mobile không còn quá xa lạ với nhiều người , đặc biệt sau sự thành công của Nguyễn Hà Đông với trò chơi “Flapy Bird” làm mưa làm gió 1 thời gian dài trên cộng đồng mạng vì độ khó chơi của nó Với thị trường Việt Nam khá rộng lớn với hơn 90 triệu và đa phần là dân số trẻ nên thị trường của game mobile cực kỳ rộng lớn, với thị trường rộng lớn như thế thì doanh thu mang lại cũng cực kỳ lớn, năm 2014 đã hơn 500 tỷ và sẽ tăng dần theo thời gian, với số vốn đầu tư ban đầu không cần nhiều, một chút kiến thức về đồ họa, một ít kinh nghiệm về lập trình cùng với một chiếc PC tầm trung là bạn có thể tự mình tạo ra những sản phầm game của riêng mình

Ở Việt Nam hiện tại có số lượng không hề nhỏ các startup làm game, có thể

kể đến như : Joy Entertainment, Divmob, ColorBox, v.v , ngoài ra còn có rất nhiều những lập trình viên độc lập Với suy nghĩ có kiến thức thì nên vận dụng nó một cách triệt để cộng thêm việc yêu thích những tựa game nổi tiếng trên thế giới, em đã bắt đầu đi tìm hiểu và nghiên cứu những cách lập trình game một cách thực sự nghiêm túc và đã có một số kinh nghiệm nhất định Khi nhận đề tài, em nhận thấy việc phát triển game mobile với các công cụ hỗ trợ - các game engine - ở trường

ĐH CNTT & TT Thái Nguyên còn khá mới mẻ cho nên em nhận đề tài: “Nghiên cứu công nghệ đa nền tảng Unity 3D và phát triển ứng dụng hỗ trợ em tự học ghép vần” Bố cục bài báo cáo gồm 4 chương:

Chương 1: Cơ sở lý thuyết

Chương 2: Khảo sát một số game mobile đang có trên thị trường

Chương 3: Phân tích thiết kế

Chương 4: Xây dựng ứng dụng hỗ trợ em tự học ghép vần

Trang 8

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Đa nền tảng và các hệ điều hành trên thiết bị di động

Đa nền tảng theo cách hiểu đơn giản thì đa nền tảng sẽ được hiểu là nhiều nền tảng, vậy ngôn ngữ nào có thể chạy được từ 2 nền tảng trở lên thì có thể gọi là ngôn ngữ lập trình đa nền tảng? Đây có thể là giải thích đúng nhưng chưa hoàn toàn Như chúng ta biết, ngày nay khi các hệ điều hành dần trở nên phổ biến, đa dạng và ngày càng có nhiều HĐH mới như Android, iOS, window mobile, windows desktop, windows server, linux (ubuntu, debian, suse…), macOS, chromeOS, firefoxOS, tizen … Thì khái niệm đa nền tảng không dừng lại ở 2 nữa mà là nhiều hơn, có thể là tất cả Vậy ngôn ngữ lập trình đa nền tảng là ngôn ngữ có thể chạy được trên nhiều nền tảng kể cả di động và desktop Và đây cũng sẽ là đích hướng đến của các lập trình viên, các framework mới trong thời gian tới

Hệ điều hành là chương trình chạy trên hệ thống máy tính, quản lý các tài nguyên trên máy tính và là môi trường cho các ứng dụng chạy trên nó Ngày nay, khái niệm hệ điều hành không chỉ là trên máy tính mà còn được mở rộng cho nhiều thiết bị điện tử khác chẳng hạng như điện thoại thông minh (smartphone), máy tính bảng v.v…

Như vậy hệ điều hành di động là hệ điều hành chạy trên hệ thống máy có tính di động cao Với đặc thù đó, hệ điều hành di động phải có những khả năng đặc biệt mà những hệ điều hành thông thường không có được Chẳng hạn như nó phải chạy trên hệ thống máy có cấu hình máy hạn chế về tốc độ bộ vi xử lý, bộ nhớ sử dụng, phải chạy được ổn định liên tục trong một thời gian dài mà chỉ sử dụng một lượng điện năng nhỏ, trong suốt thời gian chạy đó có thể duy trì các kết nối mạng không dây để đảm bảo liên lạc

1.1.1 Giới thiệu về Windows Phone

Khoảng trước những năm 2010, Microsoft đã sống những ngày huy hoàng nhất trong suốt quá trình tham gia vào việc phát triển hệ điều hành cho nền tảng di động khi mà Windows Mobile của hãng đã đánh bại Palm và trở thành một trong những nền tảng lớn nhất vào thời điểm đó Nhưng sự ra đời của IPhone OS (viết tắt

là iOS) và Android sau đó đã làm cho Windows Mobile dần lụi tàn

Trang 9

Windows Phone là hệ điều hành của Microsoft dành cho smartphone kế tục nền tảng Windows Mobile Khác với Windows Mobile, Windows Phone tập trung vào sự phát triển của Marketplace (Sau này đổi tên thành Store) - nơi các nhà phát triển có thể cung cấp sản phẩm (miễn phí hoặc có phí) tới người dùng Với Windows Phone, Microsoft đã phát triển giao diện người dùng mới mang tên Metro

- tích hợp khả năng liên kết với các phần cứng và phần mềm của hãng thứ ba một cách dễ dàng Microsoft đã phát triển Windows phone qua 3 phiên bản lần lượt là Windows Phone 7, Windows Phone 8, Windows Phone 8.1, và hiện tại đang phát triển một hệ điều hành có tên là Windows 10 for Phone

Hình 1.1 Hệ điều hành Windows Phone 7

1.1.2 Giới thiệu hệ điều hành Android

Hình 1.2 Giới thiệu android

Trang 10

Android là tên một nền tảng mở cho thiết bị di động của Google (gồm hệ điều hành – [linux base], middleware và một số ứng dụng cơ bản) Android sẽ đương đầu với một số hệ điều hành dành cho thiết bị di dộng khác đang hâm nóng thị trường như Windows phone, Symbian và dĩ nhiên là cả OS X (iPhone)

Android đã thu hút được sự chú ý của giới công nghệ khắp toàn cầu khi đứa con của Google sẽ sử dụng giấy phép mã nguồn mở Đó là một sản phẩm kết tinh từ

ý tưởng của Khối Liên minh thiết bị cầm tay mở do Google dẫn đầu, gồm 34 thành viên với các công ty hàng đầu về công nghệ và di động toàn cầu như Qualcomm, Intel, Motorola, Texas Instruments và LG Electronics, các nhà mạng như T-Mobile, Sprint Nextel, NTT DoCoMo và China Mobile Các nhà phát triển có thể sử dụng miễn phí bộ Android Software Development Kit (SDK) để xây dựng các ứng dụng của mình

1.1.3 Giới thiệu về iOS

Hình 1.3 Giới thiệu iOS

IOS là hệ điều hành di dộng của Apple ban đầu được gọi là hệ điều hành dành cho iPhone và đến tháng 6 năm 2010 thì chính thức được đổi gọi tên là “iOS” Ban đầu, hệ điều hành này chỉ được phát triển riêng cho iPhone nhưng sau đó được

mở rộng để hỗ trợ các thiết bị khác của Apple như iPod touch, iPad và Apple TV

Hệ điều hành di dộng của Apple được công bố cùng chiếc iPhone 2G tại Macworld Conference & Expo vào ngày 9/1/2007 và chính thức phát hành trong tháng 6 sau đó Khi ra mắt, hệ điều hành này không được Apple chỉ định một cái tên riêng biệt mà chỉ đơn giản gọi là "hệ điều hành X dành cho iPhone” và không hỗ trợ các ứng dụng từ các nhà phát triển thứ 3 Nguyên nhân của việc từ chối các ứng

Trang 11

dụng từ bên thứ 3 được Steve Jobs đưa ra là các nhà phát triển có thể xây dựng ứng dụng trùng chức năng với các ứng dụng gốc trên iPhone

Đến ngày 17/ 10/ 2007, Apple thông báo đã phát triển bộ công cụ phát triển phần mềm (SDK) và lên kế hoạch chuyển chúng đến tay các nhà phát triển vào tháng 2 năm 2008 Sau đó ngày 6/3/2008, Apple phát hành phiên bản thử nghiệm (beta) đầu tiên của bộ công cụ này cùng với một cái tên mới cho hệ điều hành,

"iPhone OS"

Tháng 9 năm 2009, iPod touch ra đời mang trên mình “iPhone OS” với hầu hết chức năng hiện có ngoại trừ khả năng gọi, nhắn tin hay các dịch vụ từ nhà mạng khác Và đến mùa lễ cuối năm này, Apple cũng đạt doanh số hơn một triệu chiếc iPhone

Ngày 27/1/2010, sau sự thành công của iPhone và iPod touch, Apple tiếp tục giới thiệu iPad sử dụng hệ điều hành được tùy chỉnh từ “iPhone OS” với một màn hình lớn hơn so với iPhone và iPod touch được thiết kế để duyệt web, đọc sách , giải trí đa phương tiện…

Cuối cùng đến tháng 6 năm 2010, Apple chính thức đổi tên “iPhone OS” thành một cái tên mới đơn giản, dễ nhớ hơn được mua từ hãng sản xuất thiết bị mạng Cisco, đó là "iOS" và được sử dụng cho đến ngày hôm nay

Hình 1.4 iOS 8 ra mắt với nhiều tính năng hấp dẫn

1.2 Game Engine Unity3D

Game Engine là một phần mềm được viết cho mục đích thiết kế và phát triển video game Chức năng cốt lõi của Game Engine phần lớn nằm trong công cụ dựng

Trang 12

hình (kết xuất đồ họa) cho các hình ảnh 2 chiều (2D) hay 3 chiều (3D), công cụ vật

lý (hay công cụ tính toán và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động (Animation), 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 Các Engine dùng cho làm game hiện tại có rất nhiều, trong đó có thể kể đến CryEngine, Unreal Engine, Havok Engine, Unity Engine…

1.2.1 Lý do chọn Unity Engine

Hiện nay, chúng ta có rất nhiều Engine như: Cry Engine, Unreal Engine, Source Engine, ID Tech Engine, Unity Engine và những cái tên khác như RenderWare Engine, Game Bryo Engine và các Engnie mã nguồn mở: Orge Engine, Panda3D Engine, jMonkey Engine, Trong đó Source Engine và ID Tech Engine là các lão làng trong ngành công nghiệp Game, Cry Engine và Unreal Engine là hai tân binh đáng chú ý nhất do những thành công đáng kể của họ trong những năm gần đây

Về mặt đồ họa, Cry Engine được đánh giá cao và hầu như không có đối thủ, hình ảnh 3D của Cry Engine cho chất lượng chân thực minh chứng qua các tựa game như Far Cry hay Crysis,

Tuy nhiên, Cry Engine rất kén chọn vì chỉ những máy cấu hình thật cao mới

có thể đáp ứng được Bên cạnh đó, Unreal Engine cũng cho chất lượng đồ họa không kém, mà không đòi hỏi cấu hình quá cao Các hệ máy laptop mua cách đây 4-

5 năm trở lại đa số là dùng được Các Engine khác được kể tên ở trên thay nhau vị trí top 10 sau Cry Engnine và Unreal Engine

Nếu có tiền, có nhiều kinh nghiệm và có một nhóm làm việc chuyên nghiệp, lúc đó ta mới nên nghĩ tới Cry Engine hay Unreal Engnie Còn nếu muốn sử dụng

mã nguồn mở cho tiết kiệm thì ta phải cần nhiều thời gian và sức lực hơn để tìm hiểu Orge Engine hay Panda Engine Vì thế lựa chọn sáng giá nhất cho các tân binh trong lĩnh vực làm game, có ít kinh nghiệm, ít tiền, nhưng không muốn phải bỏ quá nhiều công sức tìm hiểu lại những gì người khác đã làm chính là Unity Engine

Về mặt đồ họa, Unity không so sánh được với Cry Engine nhưng đủ làm hài lòng những người dùng phổ thông Unity không đòi hỏi máy cấu hình cao, thêm nữa Unity đặc biệt chú ý đến sự tiện dụng Việc làm game, làm phim sử dụng Unity

Trang 13

Engine so với các Engine còn lại dễ dàng hơn rất nhiều vì đối tượng mà Unity hướng đến chủ yếu là những người dùng không chuyên sâu Chúng ta có thể kéo thả, kế thừa, viết Script, tổ chức các thành phần, import – export các tài nguyên (model, texture, mesh, ) đóng gói các đối tượng hoàn chỉnh và chia sẻ nó một cách

dễ dàng với Unity

Vấn đề thương mại, Unity cung cấp bản miễn phí cho các người dùng cá nhân và các công ty có thu nhập dưới 100.000 USD Chúng ta có thể tạo các ứng dụng, các mô hình, các Game cho riêng mình hoặc bán nó trên Unity Store mà không lo về vấn đề vi phạm bản quyền Nếu muốn bán sản phẩm của mình trên Unity Store thì chúng ta phải trả 30% hoa hồng Nếu có nhu cầu cao hơn, sử dụng bản Pro, chúng ta sẽ phải trả 1.500 USD, tương đương khoảng 32 triệu VNĐ với rất nhiều tính năng cao cấp và tiện dụng

Cuối cùng, Unity có một cộng đồng rộng lớn và cực kỳ thân thiện, với nhiều tài nguyên miễn phí và tutorial hướng dẫn cho những người bắt đầu học và sử dụng Unity Những tài liệu chúng ta có thể tìm kiếm trên forum của Unity hoặc Google.[5]

+ Được viết bởi ngôn ngữ C++, C#

+ Phát triển Game cho các hệ điều hành: Windows, Mac OS X (tạo và đóng gói), Nintendo Wii, iPhone/iPad, Xbox 360, Android, Sony PlayStation 3 (chỉ đóng gói; cần giấy phép bổ sung cho từng nền tảng)

Trang 14

+ Giấy phép: Độc quyền

+ Website: www.unity3d.com

Unity được sự hỗ trợ của Just-In-Time Compilation (JIT), sử dụng thư viện

mã nguồn mở C++ Mono Bằng việc sử dụng JIT, những Engine như Unity có thể tận dụng lợi thế của tốc độ biên dịch Ngoài thư viện Mono, Unity cũng tận dụng chức năng của những thư viện phần mềm khác vào chức năng của nó, như Engine

mô phỏng vật lý PhysicX của Nvidia, OpenGL và DirectX cho kết xuất hình ảnh 3D, OpenAL cho âm thanh Tất cả các thư viện này được xây dựng thành những tính năng tự động hoặc công cụ trực quan vào Unity, vì vậy chúng ta không cần phải lo lắng về việc học thế nào để sử dụng chúng một cách riêng lẻ.Unity có một cộng đồng người dùng rất lớn mạnh, luôn chia sẻ những Plugins, công cụ của họ dưới phần mềm gói bổ sung

 Sơ lược sự hình thành và phát triển của Unity

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 bả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 có hỗ trợ Android vào tháng 9/2010 Có thể thấy tốc độ phát triển của Unity khá nhanh Phiên bản mới nhất là phiên bản 5.2

Giải thưởng:

Unity đã đoạt được nhiều giải lớn với những giải chính sau:

+ Năm 2006, Unity đạt "Best Use of Mac OS X Graphics" tại Apple's

WWDC Đây là lần đầu tiên một công cụ phát triển game đạt được chất lượng do giải thưởng uy tín này đưa ra

+ Năm 2009, Unity Technologies có tên trong "Top 5 công ty game của năm" do Gamasutra tổ chức

+ Năm 2010, Unity đoạt giải Best Engine Finalist do Develop Magazine bình chọn, giải Technology Innovation Award của Wall Street Journal ở thể loại phần mềm

Trang 15

Khách hàng:

Unity được trên 250.000 người đăng ký sử dụng gồm Bigpoint, Cartoon Network, Coca-Cola, Disney, Electronic Arts, LEGO, Microsoft, NASA, Ubisoft, Warner Bros, các hãng phim lớn nhỏ, các chuyên gia độc lập, sinh viên và những người đam mê

 Sơ nét về giao diện của Unity

Giao diện Unity, giống như nhiều môi trường làm việc khác, layout có thể tùy chỉnh Layout của Unity bao gồm nhiều tab khác nhau và có thể bật tắt Chúng

ta hãy xem xét một cách bố trí giao diện Unity điển hình:

Hình 1.6 Giao diện Editer của Unity3d

Như hình trên chúng ta thấy có 5 khung khác nhau:

1 Scene – nơi xây dựng trò chơi

2 Hierarchy – danh sách các đối tượng trong một cảnh game

3 Inspector – màn hình cài đặt cho tài nguyên/đối tượng đang được chọn

4 Game – cửa sổ xem trước game, chỉ hoạt động ở chế độ chơi (khi nhấn Play)

5 Project– danh sách các tài nguyên trong project, đóng vai trò như một thư viện

Cửa sổ Scene và Hierarchy:

Cửa sổ Scene là nơi chúng ta sẽ xây dựng toàn bộ các đối tượng trong game Cửa sổ cung cấp nhiều góc nhìn khác nhau, có thể nhìn dạng phối cảnh hoặc dạng song song Chúng ta có thể kéo thả đối tượng trên cửa sổ này, di chuyển, xoay…

Hình 1.7 Các nút điều khiển

Trang 16

Cửa sổ Scene cũng kèm theo năm nút điều khiển tiện lợi như hình trên Truy cập từ bàn phím bằng cách sử dụng các phím Q, W, E, R và T Các phím thực hiệncác hoạt động sau đây:

+ Công cụ bàn tay [Q]: công cụ này cho phép di chuyển trong cửa sổ Scene, xoay góc nhìn, phóng to, thu nhỏ góc nhìn

+ Công cụ di chuyển [W]: Công cụ này dùng để di chuyển một đối tượng + Công cụ xoay [E]: Công cụ này cho phép chúng ta xoay nhân vật theo một trục nào đó trong không gian

+ Công cụ tỷ lệ [R]: Công cụ này cho phép chúng ta tăng giảm tỷ lệ kích thước của đối tượng.Khi chọn một đối tượng trong cửa sổ Scene, đối tượng này sẽ được tự động chọn trong cửa sổ Hierarchy và ngược lại

Hình 1.8 Chọn đối tượng trong Scene và Hierrarchy

Inspector:

Inspector sẽ hiển thị tất cả thông tin, các thành phần trong đối tượng game đang chọn, và cho phép điều chỉnh các biến của các thành phần này Có thể xem cửa sổ này như cửa sổ Properties khi design giao diện Winform trên Visual Studio

Trang 17

Hình 1.9 Cửa sổ Inspector hiển thị thông tin một đối tượng

Cửa sổ Game:

Cửa sổ này sẽ hiển thị những gì có trong cửa sổ Scene và sẽ hoạt động khi nhấn nút Play Trong cửa sổ này chúng ta có thể chọn các kích cỡ hiển thị khác nhau để build cho các loại máy khác nhau Chúng ta có thể chơi thử game trên cửa

sổ này khi đã nhấn nút Play Lưu ý rằng khi cửa sổ này hoạt động rồi thì mọi chỉnh sửa trên cửa sổ Scene và cài đặt cho các đối tượng chỉ là tạm thời và khi nhấn nút Stop, cửa sổ này về lại trạng thái tĩnh thì mọi chỉnh sửa trước đó là không còn

Cửa sổ Project:

Cửa sổ Project thể hiện nội dung bên trong thư mục Assets của project chúng

ta Khi thêm tài nguyên vào thư mục Assets ngay lập tức chúng sẽ tự động được cập nhập vào project Unity của chúng ta

 Các đặc điểm và tính năng của Unity

1 Rendering (kết xuất hình ảnh)

Giống như tất cả các Engine hoàn chỉnh khác, Unity hỗ trợ đầy đủ khả năng kết xuất hình ảnh cùng nhiều hỗ trợ cho phép áp dụng các công nghệ phổ biến trong lĩnh vực 3D nhằm cải thiện chất lượng hình ảnh.Một số hỗ trợ:

- Unity cung cấp 100 Shaders với đầy đủ các loại phổ biến nhất

- Hỗ trợ Surface Shaders, Occlusion Culling, GLSL Optimizer

- Hỗ trợ LOD

Trang 18

2 Lighting (Ánh sáng)

Unity cung cấp nhiều giải pháp đa dạng cho phép chúng ta áp dụng ánh sáng một cách tốt nhất vào môi trường trong trò chơi với nhiều loại nguồn sáng như ánh sáng có hướng (Directional Light), ánh sáng điểm (Point Light), .Một số công nghệ và kỹ thuật về ánh sáng được Unity hỗ trợ: Lingtmapping, Realtime Shadows, hiệu ứng Sunshafts và Lens Flares

3 Terrains (địa hình)

Unity cung cấp một công cụ rất tốt khả năng này với tên gọi là Terrains Tools cho phép chúng ta thiết kế địa hình với các công cụ vẽ dưới dạng Brush có nhiều thông số tùy chỉnh để tạo và lát Texture cho địa hình Cùng với Terrains Tools là Tree Creator, một công cụ mạnh mẽ cho phép chúng ta tạo ra cây cối với hình dạng, kích thước và kiểu cách đa dạng

4 Substances (Texture thông minh)

Substances cho phép các trò chơi và các ứng dụng sáng tạo sử dụng tất cả các sức mạnh của nó để cung cấp những trải nghiệm độc đáo cho người dùng cuối:

- Được tạo ra ngay trong khi game được tạo

- Cung cấp nội dung tải về nhỏ

- Sử dụng sức mạnh của các textures động tạo ra các hiệu ứng độc đáo

Substances được xử lý giống như các bitmap khác trong Unity: chỉ cần kéo

và thả nó trong project là đã có thể sẵn sàng sử dụng ngay Substances có kích thước tự nhiên nhỏ hơn bitmap nên khi sử dụng Substances thay cho bitmap sẽ làm giảm đáng kể kích thước của game cuối cùng

5 Physics (Vật lý)

PhysX là một Engine mô phỏng và xử lý vật lý cực kì mạnh mẽ được phá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ề vật lý

6 Pathfinding (Tìm đường)

Đây là tính năng mới mẻ từ phiên bản Unity 3.5 Với các phiên bản trước, để phát triển khả năng tìm đường cho trí thông minh nhân tạo (AI), nhà phát triển phải hoàn toàn tự xây dựng cho mình một hệ thống tìm đường riêng biệt

Trang 19

7 Audio (Âm thanh)

Unity tích hợp FMOD – công cụ âm thanh thuộc hàng mạnh nhất hiện nay,

hỗ trợ chúng ta nhập và sử dụng nhiều định dạng tập tin âm thanh khác nhau

9 Networking

Networking cho phép chúng ta tạo ra các trò chơi trực tuyến (online), hỗ trợ đầy đủ giúp 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ương tác với thời gian thực,

Tài nguyên (model, âm thanh, hình ảnh, ) được tải vào trong Unity và tự động cập nhật nếu tài nguyên có sự thay đổi Unity hỗ trợ các kiểu định dạng từ 3DS Max, Maya, Blender, Cinema 4D và Cheetah3D

 Các khái niệm cơ bản trong Unity 3D

1 Asset

Đây là kho tài nguyên cho việc xây dựng game trong một project của Unity Các tài nguyên này có thể là hình ảnh, âm thanh, hoặc một mô hình 3D có sẵn Unity sẽ tham chiếu đến các tập tin chúng ta sẽ sử dụng để tạo ra các tài nguyên cho trò chơi Đây là lý do tại sao trong bất kỳ thư mục chứa project sử dụng Unity thì tất

cả các tập tin tài nguyên phải được lưu trữ trong một thư mục con tên là Assets

Hình 1.10 Asset trong Unity

Trang 20

2 Scene

Trong Unity, chúng ta có thể xem Scenes là các màn chơi, cấp độ chơi riêng

lẻ, hoặc các vùng của nội dung trò chơi Ví dụ như Main menu, Options, About …

Bằng cách xây dựng trò chơi với nhiều cảnh, chúng ta sẽ có thể phân phối thời gian tải và thử nghiệm các phần khác nhau của trò chơi riêng lẻ một cách nhanh chóng và chính xác

Hình 1.11 Các scene của Unity

3 Game Object

Khi một tài nguyên được sử dụng trong một scene, khi đó chúng ta có thể coi tài nguyên này là một “Game Object” mới Mỗi GameObject phải chứa ít nhất một thành phần, đó là thành phần “Transform” Transform chứa các phép để biến đổi góc quay, tỷ lệ hay tịnh tiến của đối tượng

Hình 1.12 Kéo tài nguyên vào Scene để sử dụng

Trang 21

4 Component

Component là các thành phần trong một Game Object của Unity Bằng cách đính kèm các thành phần vào cho một đối tượng, chúng ta có thể áp dụng ngay các phần mới của game engine vào đối tượng Thông thường các thành phần này được Unity xây dựng sẵn như ánh sáng, camera, particle, hiệu ứng vật lý…

Hình 1.13 Các thành phần trong đối tượng Camera

5 Script

Script là thành phần quan trọng nhất trong Unity, có thể xem scripts như là linh hồn của game Chúng ta có thể viết kịch bản cho game bằng C#, Java scripts Theo nhiều người đã sử dụng Unity thì code bằng C# sẽ giúp game chạy nhanh hơn

và giúp kiểm soát code tốt hơn do tất cả các biến phải được khai báo rõ ràng Mặt khác ngôn ngữ C# rất tiện dụng để lập trình, nên em dùng ngôn ngữ C# để viết kịch bản cho game Mỗi file script C# là một class bắt buộc kế thừa từ lớp MonoBehaviour, có tên class phải trùng với tên file script

Hình 1.14 Cách tạo file script mới

Trang 22

Một đoạn script muốn thực thi được thì nó phải được gắn vào một đối tượng

Hình 1.15 Một file script đang gắn vào đối tượng

6 Prefab

Hãy tưởng tượng Prefab là một cái thùng rỗng, mà bên trong nó chúng ta có thể chứa đựng các thành phần hay đối tượng khác nhau, chúng ta có thể viết kịch bản cho hành động của Prefab (khởi tạo, di chuyển, hay hủy đối tượng) Chúng ta

có thể sử dụng đối tượng này nhiều lần trong trò chơi, và cũng có thể sử dụng lại cho project khác Prefab cho phép chúng ta lưu trữ cá đối tượng, toàn bộ thành phần bên trong và cấu hình hiện tại

7 Material và Shader

Shader là đoạn script qui định cách thức render của chất liệu trên bề mặt vật thể Material sử dụng shader để làm chất liệu cho mô hình Giữa materials và shaders có mối liên hệ với nhau Shaders qui định các thuộc tính cần để shader làm việc Còn material cho phép gán hình ảnh vào các thuộc tính đó từ Asset

Trang 23

Trong một scene thường có nhiều đối tượng game Mỗi đối tượng này có thể

có hoặc không có đoạn script nào gắn lên đó Nếu muốn gắn script vào đối tượng, ta bắt buộc phải kế thừa class đó từ lớp MonoBehaviour của UnityAPI và tên class phải trùng với tên file script Mỗi script khi gắn lên đối tượng game đều được đối tượng game xem như một thành phần bên trong và được cấp phát vùng nhớ khi chạy game

Trang 24

Hình 1.17 Tổng quan kiến trúc Unity

Bên trong UnityAPI chứa rất nhiều lớp hỗ trợ lập trình game, trong đó có một số lớp quan trọng như :

- MonoBehaviour: tất cả các script muốn gắn vào một đối tượng game bắt buộc phải kế thừa từ lớp này

- GameObject: lớp cha của tất cả các thực thể trong scene

- Component: lớp cha của tất cả các thành phần có thể gắn vào đối tượng

- Transform: giúp thay đổi vị trí, xoay, biến đổi tỉ lệ mô hình

- Input: hỗ trợ lập trình với chuột, cảm ứng đa điểm, cảm biến gia tốc

- Camera: giúp lập trình camera

- Light: giúp tạo ánh sáng trong game

- Projector: giúp chiếu texture lên bề mặt vật thể

- ParticleEmitter: hỗ trợ tạo các hiệu ứng particle đẹp mắt

- Audio: hỗ trợ lập trình với âm thanh

- Animation: chạy chuyển động của mô hình nhân vật

- Rigidbody: giúp tạo hiệu ứng vật lý liên quan đến trọng lực như bóng nẩy, lăn,

Ngày đăng: 09/11/2017, 16:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm