1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình game đa nền tảng với unity

46 15 0

Đ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 46
Dung lượng 3,06 MB

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

Nội dung

Game Engine là một công cụ hỗ trợ giúp người phát triển viết Game một cách 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

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

LẬP TRÌNH GAME ĐA NỀN TẢNG VỚI UNITY

Sinh viên thực hiện: Nguyễn Trọng Tuyến

Lớp: 53K1 - CNTT

Giáo viên hướng dẫn: ThS Lê Văn Thành

Trang 3

LỜI CẢM ƠN

Trong khoảng thời gian học tập và rèn luyện tại trường Đại học Vinh, em xin chân thành cảm ơn tất cả thầy cô trong trường nói chung và trong Khoa Công nghệ thông tin nói riêng đã tận tình giảng dạy, hướng dẫn, truyền đạt những kiến thức, kinh nghiệm quý báu cho em Với những kiến thức đó, em thực sự tự tin trở thành một Kỹ

sư Công nghệ thông tin

Đặc biệt, em xin gửi lời cảm ơn chân thành tới thầy giáo ThS Lê Văn Thành, người đã tận tình hướng dẫn, định hướng, giúp đỡ và truyền đạt những kinh

nghiệm, phương pháp nghiên cứu khoa học cho em suốt quá trình thực hiện đồ án tốt nghiệp này

Tuy nhiên, do thực hiện trong một thời gian ngắn cũng như kiến thức của em

c n có nhiều hạn chế nên trong đồ án còn có nhiều sai sót Em rất mong nhận được sự quan tâm góp ý của quý thầy cô và các bạn

Xin chân thành cảm ơn!

Trang 4

MỤC LỤC

LỜI CẢM ƠN i

MỤC LỤC ii

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ GAME ENGINE 2

1.1 Khái niệm Game Engine 2

1.2 Mục đích 2

1.3 Xu hướng hiện tại 3

1.4 Phần mềm trung gian 4

1.5 Một số Game Engine nổi tiếng hiện nay 5

CHƯƠNG 2: UNITY ENGINE 6

2.1 Giới thiệu chung 6

2.2 Lí do nên chọn Unity để phát triển game 7

2.3 Các thành phần của Unity 9

2.3.1 Các khái niệm cơ bản trong Unity 9

2.3.2 Giao diện của Unity Editor 14

CHƯƠNG 3: LẬP TRÌNH TRÒ CHƠI GOKURUN 18

BẰNG ENGINE UNITY 18

3.1 Ý tưởng 18

3.2 Các bước tiến hành 19

3.2.1 Diễn hoạt (animation) 19

3.2.2 Tạo animation theo kỹ thuật Key Frame 20

Trang 5

3.2.9 Cơ sở dữ liệu trong Unity 32

3.2.10 Build game 34

CHƯƠNG 4: GIỚI THIỆU GAME DEMO - GAME GOKURUN 36

4.1 Giao diện các màn chơi 36

4.2 Hướng dẫn chơi game 38

KẾT LUẬN 40

1 Những vấn đề đạt được 40

2 Hạn chế 40

3 Hướng phát triển 40

TÀI LIỆU THAM KHẢO 41

Trang 6

LỜI MỞ ĐẦU

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 những người dùng, đặc biệt là về sản phẩm Game được nhận rất nhiều sự đánh giá từ phía các Game thủ, hay chỉ là những người chơi bình thường 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, 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à nổi tiếng như vậy đều có một Game Engine (công cụ) Game Engine là một công cụ hỗ trợ giúp người phát triển viết Game một cách 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 Tại Việt Nam, ngành công nghiệp Game mới chỉ đang phát triển đa số chủ yếu vẫn là phát hành Game Các công ty hiện nay đa số đều chỉ nhen nhóm những dự án nhỏ và kém hấp dẫn gây nên không ít thất vọng từ những Game thủ ủng hộ Game nước nhà

Từ xu hướng phát triển và những bất cập trên, đồ án này sẽ khảo sát và nghiên cứu về Engine Unity - một Game Engine rất phổ biến và không kém mạnh mẽ hiện nay nhằm thực nghiệm việc phát triển một tr chơi Chuẩn bị kiến thức và kỹ năng cho định hướng nghề nghiệp (phát triển Game) sau này của em, góp phần vào sự phát triển của ngành công nghiệp Game nước nhà

Nghệ An, tháng 5 năm 2017

Sinh viên thực hiện

Nguyễn Trọng Tuyến

Trang 7

CHƯƠNG I TỔNG QUAN VỀ GAME ENGINE

1.1 Khái niệm Game Engine

Một Game Engine (hay công cụ tạo Game / động cơ Game) là một phần mềm được viết cho mục đích thiết kế và phát triển video Game Có rất nhiều loại Game Engine dùng để thiết kế Game cho các hệ máy như hệ Consoles hay máy tính cá nhân (PC) Chức năng cốt lõi của Game Engine phần lớn nằm trong công cụ dựng 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 Quá trình phát triển Game tiết kiệm được rất nhiều thời gian và kinh phí vào việc tái sử dụng và tái thích ứng một Engine để tạo nhiều Game khác nhau

1.2 Mục đích

Thuật ngữ Game Engine xuất hiện lần đầu vào giữa những năm 90, và với tốc

độ phát triển công nghệ nhanh đến chóng mặt, rất nhiều Game Engine đã ra đời cho nhiều mục đích khác nhau, không chỉ còn giới hạn cho giải trí đơn thuần mà còn cho các mục đích khác như Mô phỏng, huấn luyện ảo, y tế ảo, mô phỏng các ứng dụng quân sự,…

Game Engine cung cấp một bộ các công cụ phát triển trực quan và có thể tái sử dụng từng thành phần trong đó Nói chung các bộ công cụ này cung cấp một môi trường phát triển tích hợp được đơn giản hóa Phát triển ứng dụng nhanh (Rapid Application Development) cho Game theo cách lập trình hướng dữ liệu Những Game Engine này đôi khi c n được gọi là các "phần mềm trung gian cho Game" (Game Middleware), như ý nghĩa của thuật ngữ, chúng cung cấp một nền tảng phần mềm linh hoạt và dễ dàng sử dụng lại với mọi chức năng cốt lõi cần thiết ngay trong nó để có thể phát triển một ứng dụng Game đồng thời giảm giá thành, độ phức tạp, và kịp thời hạn phát hành - tất cả các yếu tố quan trọng trong ngành công nghiệp Game đầy cạnh tranh

Giống như các phần mềm trung gian khác, Game Engine thường cung cấp một nền tảng trừu tượng hóa, cho phép một Game có thể chạy trên nhiều hệ máy bao gồm các hệ console hoặc máy tính cá nhân với một vài thay đổi (nếu cần) trong mã nguồn của Game đó Thông thường, phần mềm trung gian cho Game được thiết kế với một nền tảng kiến trúc dựa trên các thành phần khác, cho phép các hệ thống khác nhau trong Engine có thể thay thế hoặc mở rộng với các phần mềm trung gian khác chuyên

Trang 8

biệt hơn như là Havok cho hệ thống vật lý trong Game, Miles Sound System cho âm thanh, hay Bink cho các đoạn video

Game engine cung cấp một bộ các công cụ phát triển trực quan và có thể tái sử dụng từng thành phần trong đó Nói chung các bộ công cụ này cung cấp một môi trường phát triển tích hợp được đơn giản hóa Phát triển ứng dụng nhanh (tiếng Anh:rapid application development) cho game theo cách lập trình hướng dữ liệu Những game engine này đôi khi c n được gọi là các "phần mềm trung gian cho game"(game middleware), như ý nghĩa của thật ngữ, chúng cung cấp một nền tảng phần mềm linh hoạt và dễ dàng sử dụng lại với mọi chức năng cốt lõi cần thiết ngay trong nó để có thể phát triển một ứng dụng game đồng thời giảm giá thành, độ phức tạp, và kịp thời hạn phát hành- tất cả các yếu tố quan trọng trong ngành công nghiệp game đầy cạnh tranh

1.3 Xu hướng hiện tại

Với công nghệ tạo Game Engine càng phát triển và trở nên thân thiện hơn với người sử dụng, ứng dụng của nó càng được mở rộng, và giờ đây được sử dụng để tạo các Game mang mục đích khác với giải trí đơn thuần như: mô phỏng, huấn luyện ảo, y

tế ảo, và mô phỏng các ứng dụng quân sự

Nhiều Game Engine đang được tạo ra bằng các ngôn ngữ lập trình cấp cao như Java và C# hay NET (ví dụ: TorqueX, và Visual3D.NET) hay Python (Panda3D)

Vì hầu hết các Game 3D hiện nay đều có giới hạn cho GPU (giới hạn bởi sức mạnh của card đồ họa), khả năng gây chậm máy của các ngôn ngữ lập trình cấp cao trở nên không đáng kể, trong khi việc tăng năng suất được cung cấp bởi các ngôn ngữ này lại có lợi cho các nhà phát triển Game Engine

Thêm vào đó, nhiều game engine đang được tạo ra bằng các ngôn ngữ lập trình cấp cao như Java và C# hay NET (ví dụ TorqueX, và Visual3D.NET) hay Python (Panda3D) Vì hầu hết các game 3D hiện nay đều có giới hạn cho GPU(giới hạn bởi sức mạnh của card đồ họa), khả năng gây chậm máy của các ngôn ngữ lập trình cấp

Trang 9

này trở nên dễ dàng hơn và rẻ hơn bao giờ hết để phát triển một game đa hệ máy có hỗ trợ managed frameworks

Game engine hiện đại là một trong những ứng dụng được viết ra (bằng các ngôn ngữ lập trình) phức tạp nhất, thường xuyên phải có rất nhiều tinh chỉnh trong hệ thống

để đảm bảo kiểm soát chính xác trải nghiệm người dùng Sự phát triển liên tục của game engine đã tạo ra một sự phân chia mạnh mẽ giữa dựng hình, kịch bản, thiết kế hình ảnh, và thiết kế cấp độ(các màn chơi ) Bây giờ thông thường nhất là: một đội ngũ phát triển game điển hình phải có số lượng họa sĩ gấp vài lần số lượng lập trình viên

Mặc dù thuật ngữ lần đầu được sử dụng vào những năm 90, nhưng vẫn có một vài hệ thống trước đó trong thập niên 80 cũng được coi như là game engine, như là AGI và SCI của Sierra, SCUMM của LucasArts và Freescape engine của Incentive Software Không như hầu hết các game engine ngày nay, các engine này chưa bao giờ được sử dụng bởi bất kỳ một hãng thứ 3 nào(trừ trường hợp hê thống SCUMM đã được cấp phép và sử dụng bởi Humongous Entertainment)

1.4 Phần mềm trung gian

Một số hãng hiện nay chuyên tập trung vào phát triển các bộ phần mềm gọi là

phần mềm trung gian (middleware) Các nhà phát triển middleware cố gắng "tái phát minh ra bánh xe" bằng cách phát triển một bộ phần mềm mạnh mẽ (là khả năng của

một hệ thống máy tính để đối phó với các lỗi trong khi thực hiện để tiếp tục hoạt động bất chấp những bất thường ở đầu vào, tính toán) mà bao gồm hầu hết các yếu tố một nhà phát triển game cần đến để xây dựng một game Phần lớn các chương trình phần mềm trung gian cung cấp các cơ sở để phát triển một cách dễ dàng, như hình ảnh, âm thanh, hệ thống vật lý và chức năng AI Gamebryo và RenderWare là hai phần mềm trung gian được sử dụng khá rộng rãi

Một số middleware chỉ làm một chức năng nhưng nó c n hiệu quả hơn cả toàn

bộ engine Ví dụ, SpeedTree được sử dụng để dựng hình ảnh cây cối thêm thực tế trong game nhập vai: The Elder Scrolls IV: Oblivion

Bốn gói phần mềm trung gian được sử dụng rộng rãi nhất mà cung cấp các chức năng trong hệ thống con gồm có Bink của hãng RAD Game Tools, hãng Firelight với FMOD, Havok, và GFx của Scaleform RAD Game Tools phát triển Bink cho dựng hình video cơ bản, đi cùng với âm thanh Miles, và dựng hình 3D Granny FMOD của Firelight là một thư viện và bộ công cụ phần mềm âm thanh mạnh mẽ giá rẻ Havok cung cấp một hệ thống mô phỏng vật lý mạnh, cùng với các bộ phần mềm hình ảnh động và mô phỏng hành vi Scaleform đem lại GFx dùng cho các biểu diễn cao

Trang 10

cấp trên nền giao diện Flash, cùng với các giải pháp trình chiếu video chất lượng cao,

và một Input Method Editor (IME) phần bổ sung nhằm hỗ trợ tr chuyện trong game bằng ngôn ngữ châu Á

Một số middleware bao gồm toàn bộ mã nguồn trong nó, số khác chỉ cung cấp một giao diện lập trình ứng dụng dùng để tham khảo như một thư viện mã nhị phân Mặt khác một số có thể được cấp phép, thường là phải trả một cái giá cao hơn cho toàn

bộ mã nguồn

1.5 Một số Game Engine nổi tiếng hiện nay

Nếu các gõ từ khóa Top 5/10 Game Engine tìm kiếm thì sẽ thấy rất nhiều bảng tống sắp khác nhau, thực sự mỗi Game Engine đang tồn tại và phát triển được đều phải

có thế mạnh của mình trên các tiêu chí khác nhau Một số Game Engine phục vụ xây dựng các ứng dụng đa nền tảng, một số chỉ dành cho Mobile, một số cho HTML5,… hoặc thậm chí một số giúp bạn tạo ra game của riêng mình không cần phải thông qua lập trình mà chỉ đơn thuần dùng kéo thả

Em xin đưa ra một số Game Engine nổi tiếng như: Unreal Engine, Unity3D,

CryEngine, GameMaker, Construct, PlayCanvas, Godot, Cocos 2D

Trang 11

CHƯƠNG II UNITY ENGINE

2.1 Giới thiệu chung

Hình 2.1: Logo của Unity

- Nhà phát triển: Unity Technologies

- Phát hành đầu tiên: 8/6/2005

- Phiên bản mới nhất tính đến thời điểm này là phiên bản 5.6, dưới dạng 4 phiên bản (Persional, Plus, Pro, Enterprise) có thể tải trực tiếp trên trang chủ của unity https://unity3d.com

Unity là một Game Engine được xây dựng bởi đội ngũ Unity Technologies từ

2005 Version hiện tại là 5.3.x có trên cả 2 nền tảng Window và Mac Các phiên bản đời đầu (1x-2x) chỉ hướng đến các nhà làm Game không chuyên với những khả năng đơn giản Tuy nhiên các phiên bản về sau đã có sự phát triển mạnh mẽ và những cải tiến vượt bậc, trở thành công cụ được rất nhiều cá nhân và các công ty sử dụng (đặc biệt là thị trường Mobile)

- Phát triển Game cho các hệ điều hành: Android, IOS, WindowsPhone,…

- Được phát triển bởi ngôn ngữ C/C++ và có khả năng hỗ trợ mã viết bằng C#, Java hoặc Boo

- Những tựa game nổi tiếng được xây dựng bởi Unity Engine:

+ Deus Ex: The Fall

+ Assassin’s Creed: Identity

Trang 12

+ Wasteland 2

+ Hearthstone: Heroes of Warcraft

+ Kerbal Space Program

Hình 2.2: Một số game nối tiếng được xây dựng bởi unity engine

2.2 Lí do nên chọn Unity để phát triển game

Một hệ sinh thái game gồm có các chức năng cơ bản nhƣ: 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ò nguồn dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng Ngoài những chức năng cơ bản của một hệ sinh thái đó, Unity c n có những ƣu việt vƣợt trội

so với các engine khác:

- Ngôn ngữ lập trình phổ biến Việt Nam: C#, Java,…

- Hỗ trợ đa nền tảng: Những nền tảng mà Unity đang hỗ trợ gồm PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, Web,…

Trang 13

Hình 2.3: Unity hỗ trợ đa nền tảng (23 nền tảng) và vẫn đang tiếp tục tăng

- Dễ sử dụng, ngay cả với Lập trình viên nghiệp dư, do Unity được xây dựng 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

- Tính kinh tế cao: Những cá nhân và doanh nghiệp có doanh thu dưới 100.000 USD/năm được dùng miễn phí engine Unity, và Unity Technology chỉ thu phí 1.500 USD/năm cho bản Pro- một con số rất khiêm tốn so với những gì engine này mang lại

- Rất được ưa chuộng tại Việt Nam, ngay cả trong các game studio lớn như VTC, VNG, Glass-Egg

- Thư viện phong phú, đa dạng: Unity có nhiều thư viện, các công cụ hỗ trợ làm game nhanh hơn, thông minh hơn, các đối tượng được tạo sẵn, và tất cả các thư viện này đều “mở”, cho phép cộng đồng tự do sử dụng và sáng tạo nên các sản phẩm của chính mình, thậm chí có thể bán trên Asset Store của Unity Unity3D có Asset Store của mình, ở đây bao gồm các Plugin được cộng đồng Unity phát triển và bán, có cả những bản free (mách nhỏ là nhiều plugin hay ho trên này các bạn có thể tìm thấy qua torrent)

- Cộng đồng rất lớn mạnh: là 1 trong số những engine phổ biến nhất trên thế giới, Unity có cộng đồng sử dụng rất lớn mạnh Mọi thắc mắc của bạn về Unity đều sẽ được trả lời trên website cộng đồng http://answers.unity3d.com Unity rất chú trọng vào việc xây dựng một cộng đồng người dùng đông đảo và lớn mạnh, giúp trao đổi, giải quyết các vấn đề bạn cần thắc mắc hoặc quan tâm Nhiều các tutorials từ cơ bản đến nâng cao, documents, ebook phong phú và các buổi training được diễn ra thường xuyên

- Hỗ trợ Game 2D: Mặc dù tên gọi đầy đủ là Unity3D nhưng Unity hỗ trợ việc xây dựng game 2D rất tốt và có rất nhiều game 2D nổi tiếng trên các nền tảng khác nhau sử dụng Game Engine này

Trang 14

Unity hỗ trợ import hầu như tất cả các định dạng 3D model hiện nay Khi một đối tượng hay vật thể 3D được import hoặc tạo ra trong Unity, nó được gọi là asset Khi lưu trữ asset, nên lưu trong thư mục Assets đặt trong thư mục Project của bạn Lúc mở project, Unity sẽ tự động dò tìm và import tất cả vào trong Project

Khi bạn chọn một asset trong Project View, những thông số import cho asset

sẽ hiển thị ở Inspector Mỗi loại asset sẽ có mỗi kiểu thông số khác nhau

Chỉ cần click-drag các khung lưới được vẽ trong 3D (mesh) từ Project View vào cửa sổ Hierarchy hoặc Scene View để thêm nó vào trong Scene Khi thêm một mesh vào trong scene, tức là bạn đã tạo ra một GameObject có Mesh Renderer Component Tương tự khi thêm vật liệu, hoặc âm thanh, bạn cũng phải gán nó vào một GameObject đã có sẵn trong Scene hay Project

Trang 15

Hình 2.4 Asset trong Unity

b) Scene

Là nơi bạn Design Game của bạn, đối tượng Maneuvering và Importanting trong Scene view (chuyển động và điều khiển) là hai trong số các chức năng quan trọng của Unity, ở góc bên phải của Scene là Scene Gizmo, nó thể hiện hướng nhìn trong không gian của camera trong Scene View hiện thời, cho phép thay đổi góc

nhìn trực quan và nhanh chóng

Click lên các nhánh hình nón để chuyển qua các góc nhìn khác nhau có thể xem ở chế độ Isometric Model(tức ở dạng mặt cắt hai chiều), để chuyển qua chế độ 3d bạn Click vào hình vuông ở giữa hay giữ phím Shift.Khi xây dựng một Game, bạn

sẽ đặt rất nhiều đối tượng vào trong Game của bạn Bạn có thể dử dụng các công cụ Transform Tools ở trong Toolbar để di chuyển, xoay, phóng to tu nhỏ từng đối tượng.Khi bạn chọn một đối tượng trong Scene View, xung quanh đối tượng được chọn sẽ có những thay đổi tương ứng với từng chế độ trong Transform Tools.Sau đó bạn thay đổi đối tượng tùy ý, nếu muốn chính xác bạn có thể chỉnh chi tiết ở bảng Inspector

Thanh điều khiển Scene view cho phép bạn xem screen Game với nhiều chế độ như đã phủ vật liệu (material), khung lưới(wireframe), RGB, Overdraw, …Bạn cũng

Trang 16

có thể xem và cả nghe những hiệu ứng ánh sáng, âm thanh, những thành phần động trong Game… ngay tại Scene

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

c) 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 Từ đây trong báo cáo này chúng em sẽ gọi

GameObject trong cửa sổ Hierarchy là đối tượng game

Trang 17

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

d) 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 2.7 Các thành phần trong đối tượng Camera

e) 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, hoặc Boo (một dẫn xuất của ngôn ngữ Python) 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 trong luận văn này, chúng 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

Trang 18

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

Giao diện code C# rất quen thuộc khi edit trên Visual Studio 2010

Trang 19

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

f) 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ác đối tượng, toàn bộ thành phần bên trong và cấu hình hiện tại

Prefabs là một tính năng hữu ích trong Unity, nó là một bộ sưu tập của nhiều GameObject và Components mà có thể được dùng lại nhiều lần trong scene Nhiều đối tượng riêng biệt có thể được tạo ra chỉ bằng một Prefab, được gọi là Intance Thật dễ dàng và nhanh chóng, Prefab sẽ giúp bạn tiết kiệm rất nhiều thời gian

Để tạo ra một Prefab từ một GameObject trong scene, đầu tiên, khởi tạo trước một Prefab mới trong Project View, đặt tên cho Prefab đó theo ý bạn thích, sau đó, click và drag đối tượng GameObject mà bạn muốn nó trở thành một Prefab vào trong Prefab, khi đó tên của GameObject sẽ chuyển sang xanh dương

2.3.2 Giao diện của Unity Editor

Trang 20

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 2.11 Giao diện Editor của Unity

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

o Scene [1] - nơi xây dựng tr chơi

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

o Hierarchy [3] - danh sách các GameObject trong một cảnh game

o Inspector [4] - màn hình cài đặt cho tài nguyên/đối tượng đang được chọn

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

Trang 21

Cửa sổ Scene cũng kèm theo bốn 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, và R Các phím thực hiện các hoạt động sau đây:

o 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

o Công cụ di chuyển [W]: Công cụ này dùng để di chuyển một đối tượng

o 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

o 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

b) Inspector

Games trong Unity được tạo ra bởi tập hợp rất nhiều GameObject, trong đó bao gồm meshes, scripts, âm thanh, hay những đối tượng Graphic như nguồn sáng v v Inspector sẽ hiển thị mọi thông tin về đối tượng đang làm việc một cách chi tiết, kể cả những Components được đính kèm và những thuộc tính của nó Tại đây bạn có thể điều chỉnh, thiết lập mọi thông số chức năng của những mối liên kết

GameObject-Component

Mọi thuộc tính thể hiện trong Inspector đều có thể được tùy biến một cách trực tiếp Ngay cả với những biến trong script cũng có thể được hiệu chỉnh mà không cần xem mã Trong script, nếu bạn định nghĩa một giá trị là public cho một kiểu đối tượng (như GameObject hay Transform), bạn có thể drag-drop một

GameObject hay một Prefab vào trong Inspector để gán giá trị cho nó

Chúng ta có thể click lên icon hình bánh răng nhỏ bên phải hay click chuột phải lên tên cảu Component để xuất hện context menu dành cho những thiết lập

của Component

Inspector cũng sẽ thể hiện mọi thông số Import Setting của assets đang làm

việc

Trang 22

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

c) 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

d) Cửa sổ Project

Mỗi Project của Unity đều chứa một thư mục Assets.Nội dung của thư mục này được hiển thị trong Project View Đây là nơi chứa tất cả các assets để tạo Game của bạn như Scenes, Script, 3D models, Textures, Audio, Prefabs Chúng ta không nên di chuyển asseets bằng cách sử dụng Window Explorer (hay Finder trong MAC), vì nó

sẽ phá vỡ cấu trúc siêu dữ liệ của assets với nhau, và luôn sử dụng Project View để cấu trúc assets của mình

Để thêm assets vào project của mình, chúng ta có thể kéo thả bất kỳ file nào

Trang 23

CHƯƠNG 3 LẬP TRÌNH TRÒ CHƠI GOKURUN

BẰNG ENGINE UNITY

3.1 Ý tưởng

Tr chơi xuất phát từ ý tưởng của tr chơi Flappy bird, nhân vật game sẽ vượt qua các chướng ngại vật để dành điểm, nếu nhân vật chạm vào chướng ngại thì trò chơi sẽ kết thúc

Hình 3.1 Thuật toán chính của game

Ngày đăng: 01/08/2021, 10:35

TỪ KHÓA LIÊN QUAN

w