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

Đề tài phát triển game đa nền tảng trên unity

50 1,1K 14

Đ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 50
Dung lượng 4,07 MB

Nội dung

Tài liệu hướng dẫn làm quen với Unity.Unity là một công cụ phát triển game được phát triển bởi độ ngũ kĩ thuật Unity.Unity hỗ trợ xuất bản nhiều platforms từ stand alone cho PC và Mac, mobile như iOS và Android, console như PS3, XBOX360, Wii đến các phiên bản chạy trực tiếp trên web nhờ Unity Web Player.

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN II

NIÊN KHÓA: 2012 - 2017

Đề tài:

PHÁT TRIỂN GAME ĐA NỀN TẢNG TRÊN UNITY

Môn: Nhập môn công nghệ phần mềm Giáo viên hướng dẫn: TS Võ Xuân Thể Tên sinh viên: Lê Văn Ninh

Mã sinh viên: N12DCCN032 Lớp: D12CQCN01-N

Tháng 10/2014

Trang 2

Mục lục

1 GIỚI THIỆU: 3

2 CÀI ĐẶT: 3

3 ĐẶC ĐIỂM VƯỢT BẬC CỦA UNITY: 3

3.1 Hỗ trợ kéo thả: 3

3.2 Hỗ trợ chế độ xem màn hình thật của game: 4

3.3 Hỗ trợ chế độ chơi thử: 5

3.4 Hỗ trợ các yếu tố Vật lí: 5

3.5 Hỗ trợ xây dựng game trên nhiều nền tảng: 6

3.6 Sử dụng nhiều ngôn ngữ để lập trình: 7

4 CÁC KHÁI NIỆM CƠ BẢN TRONG UNITY: 7

4.1 Game Object: 7

4.2 Component: 7

4.3 Sprite: 7

4.4 Animation: 8

4.5 Key Frame: 8

4.6 Prefab: 8

4.7 Sound: 9

4.8 Script: 10

4.9 Scene: 11

4.10 Assets: 12

4.11 Camera: 12

5 CÁC VÙNG CHỨC NĂNG TRONG UNITY: 13

5.1 Hierarchy: 13

5.2 Scence: 13

5.3 Game : 13

5.4 Inspector: 13

5.5 Project: 13

5.6 Console: 13

6 TẠO DỰ ÁN VÀ CẤU HÌNH DỰ ÁN: 14

Trang 3

6.2 Cấu hình dự án game 2D: 15

6.2.1 Điều chỉnh góc chiếu của camera: 15

6.2.2 Tạo thư mục: 16

7 TẠO CÁC ĐỐI TƯỢNG CƠ BẢN: 17

7.1 Game Object: 17

7.1.1 Empty Object: 17

7.1.2 Parent Object và Child Object: 18

7.2 Tag: 19

7.3 Sprite: 21

8 ANIMATION: 26

8.1 Các kĩ thuật toán Animation: 26

8.1.1 Kỹ thuật key frame: 26

8.1.2 Kỹ thuật bộ xương: 27

8.2 Tạo animation theo kỹ thuật Key Frame: 28

9 SCRIPT: 32

9.1 Cách tạo Script: 32

9.2 Một số xử lý cơ bản: 36

10 THÀNH PHẦN VẬT LÝ: 36

11 THÀNH PHẦN XỬ LÝ VA CHẠM: 38

12 TEXT: 40

13 CHUYỂN ĐỔI MÀN CHƠI: 43

14 BUILD GAME: 46

15 TÀI LIỆU THAM KHẢO: 49

Trang 4

1 GIỚI THIỆU:

Unity là một công cụ phát triển game được phát triển bởi độ ngũ kĩ thuật Unity Unity hỗ trợ xuất bản nhiều platforms từ stand alone cho PC và Mac, mobile như iOS và Android, console như PS3, XBOX360, Wii đến các phiên bản chạy trực tiếp trên web nhờ Unity Web Player

2 CÀI ĐẶT:

Unity phiên bản mới nhất tính đến thời điểm 19/10/2014 là bản 4.5.1 , được phát hành dưới dạng 2 phiên bản :

- Unity miễn phí có thể tải trực tiếp từ trang http://unity3d.com/unity/download

- Unity Pro : bản thương mại, có giá 1500 USD

Ảnh 2.1: Trang chủ của Unity

3 ĐẶC ĐIỂM VƯỢT BẬC CỦA UNITY:

Trang 5

Ảnh 3.1.1: Khả năng kéo thả trong Unity

3.2 Hỗ trợ chế độ xem màn hình thật của game:

Unity hỗ trợ chúng ta vùng nhìn có tên là Game, vùng này giúp ta nhìn trước những đối tượng sẽ được bố trí như thế nào trên màn hình thật sự của thiết bị Điều này thật

sự hữu ích khi ta không cần phải tưởng tưởng hay kiểm thử giao diện trên thiết bị thật

Ảnh 3.1.2: Vùng xem trước game

Trang 6

Unity xây dựng sẵn các thuộc tính Vật lí như trọng lực, lực kéo, lực ma sát, gia tốc

để chúng ta thêm vào các đối tượng

Ví dụ: Như trong ảnh ta thấy khi thuộc tính Gravity Scale = 1, tức là vật sẽ chịu tác động của trọng lực với gia tốc trọng trường g = 1 Khi đó, ở chế độ chơi game, ta sẽ thấy vật bị rơi

Trang 7

Ảnh 3.1.4: Minh họa tác nhân trọng lực được hỗ trợ trong Unity

3.5 Hỗ trợ xây dựng game trên nhiều nền tảng:

Unity hỗ trợ xuất bản nhiều nền tảng như : trên máy tình thì có PC và Mac, mobile như iOS và Android, console như PS3, XBOX360, Wii đến các phiên bản chạy trực tiếp trên website

Điều này giúp tiết kiệm công sức khi ta không phải tạo nhiều dự án khác nhau để đáp ứng cho từng nền tảng

Ảnh 3.1.5: Các nền tảng mà Unity hỗ trợ

Trang 8

3.6 Sử dụng nhiều ngôn ngữ để lập trình:

Unity hỗ trợ 3 ngôn ngữ để lập trình là C Sharp , Java Script và Boo C Sharp thích hợp cho những nhà lập trình ứng dụng khi mới làm quen với Unity, còn Java Script thích hợp cho những ai đã từng học qua lập trình web Boo là ngôn ngữ được phát triển bởi chính Unity

4 CÁC KHÁI NIỆM CƠ BẢN TRONG UNITY:

Trang 9

Key Frame hay Frame là một trạng thái của một animation

Ảnh 4.3: Key Frame trong thiết kế Animation

4.6 Prefab:

Prefab là một khái niệm trong Unity, dùng để sử dụng lại các đối tượng giống nhau

có trong game mà chỉ cần khởi tạo lại các giá trị vị trí, tỉ lệ biến dạng và góc quay từ một đối tượng ban đầu

Trang 10

Có thể hiểu đơn giản hơn,Prefab là một đối tượng được tạo ra để xem như mẫu, khi tạo nhiều đối tượng giống nhau, thay vì phải làm lại từ đầu, ta dùng mẫu này để khởi tạo đối tượng giống nhau này

Ví dụ: Trong game Flappy Bird, hỉnh nền của đất và bầu trời sẽ liên tục lặp lại.Các đối tượng này đều có xử lý giống nhau, nên ta chỉ việc tạo ra một đối tượng ban đầu

và chọn làm Prefab, các vật còn lại sẽ sử dụng Prefab đã tạo

Ảnh 4.4: Sử dụng Prefab cho đối tượng BG và Ground

4.7 Sound:

Âm thanh trong game Trong Unity có hỗ trợ hầu hết các định dạng âm thanh hiện nay

Trang 11

Ảnh 4.5: Minh họa 1 file âm thanh trong Unity

Trang 12

Ảnh 4.6: Một File C# Script trong Unity

4.9 Scene:

Scene được hiểu là một cảnh trong game Scene dùng để quản lý tất cả các đối tượng trong một màn chơi của game

Trang 13

Ảnh 4.7: Hình thức lưu trữ của Unity đối với Scene

Trang 14

5 CÁC VÙNG CHỨC NĂNG TRONG UNITY:

Trang 15

6 TẠO DỰ ÁN VÀ CẤU HÌNH DỰ ÁN:

6.1 Tạo Project (dự án) mới:

Mở Unity lên, ta sẽ gặp một bảng có chức năng open project (mở dự án đã có) hoặc Creat New Project (Tạo dự án mới)

Project Location : Nơi lưu trữ dự án

Setup defaults for: Thiết lập thiết lập dự án là 2D game hay 3D game

Ảnh 6.1: Cửa sổ tạo dự án

Lưu ý: Chúng ta cũng có thể tạo project mới sau khi đang ở trong giao diện lập trình

của Unity bằng cách: từ thanh menu chọn File  New Project

Trang 16

Ảnh 6.2: Tạo dự án mới bằng thao tác File New Project

6.2 Cấu hình dự án game 2D:

6.2.1 Điều chỉnh góc chiếu của camera:

Sau khi tạo dự án xong, ở Hierarchy sẽ có một đối tượng là Main Camera Chúng ta cần điều chỉnh kiểu hiển thị màn hình là 2D Ở cửa sổ Hierarchy chọn Main Camera Ở cửa sổ Inspector sẽ hiển thị các thông số của camera (Ảnh 6.3)

Trong đó, thuộc tính Projection quy định dạng phép chiếu Thuộc tính Projection

có 2 giá trị là Perspective (phép chiếu phối cảnh) và Orthographic (phép chiếu

vuông góc) Để làm game 2D, ta chọn dạng Orthographic cho thuộc tính Projection

Trang 17

Ảnh 6.3: Điều chỉnh phép chiếu dạng chiếu vuông góc

6.2.2 Tạo thư mục:

Để quản lí dự án được dễ dàng hơn, ta cần tạo các thư mục để phân loại các tập tin

Để tạo thư mục, ta nhấn chuột phải vào vùng Project, chọn Creat  Folder

Tạ cần tạo các thư mục sau:

Sprites : chứa các hình ảnh, bao gồm các đuôi định dạng như *.jpg *.jpeg, *.png Animations: chứa các tập tin chuyển động, *.anim

Scenes: chứa các cảnh game *.unity

Sounds: chứa các tập tin âm thanh , *.mp3, *.wav

Scripts: chứa các mã lệnh điều khiển, nếu viết bằng C# thì có phần mở rộng *.cs

Trang 18

Ảnh 6.4: Tạo thư mục trong Unity

7 TẠO CÁC ĐỐI TƯỢNG CƠ BẢN:

7.1 Game Object:

7.1.1 Empty Object:

Empty Object có nghĩa là một đối tượng mới hoàn toàn, chưa thiết lập bất kì thuộc tính nào

Để tạo Empty Object, trên thanh menu ta chọn GameObject  Create Empty

Ta có thể đổi tên, sao chép hay xoá các đối tượng bằng cách nhấn chuột phải vào đối

tượng trên thanh Hierarchy

Trang 19

Ảnh 7.1: Nhấn chuột phải vào đối tượng để chỉnh sửa đối tượng

7.1.2 Parent Object và Child Object:

Parent Object (Đối tượng cha) : là một đối tượng chứa các đối tượng con khác, gắn liền với nhau

Child Object (Đối tượng con): là một đối tượng nằm trong một đối tượng khác, gắn liền với nhau

Để tạo các đối tượng parent và child, ta chỉ việc kéo thả một đối tượng có sẵn vào trong đối tượng đã có trong cửa sổ Hierarchy

Khi thay đổi các đối tượng con thì chỉ có tác động trên đối tượng con đó

Khi thay đổi đối tượng cha thì các đối tượng con sẽ thay đổi theo

Trang 20

Ảnh 7.2: Đối tượng cha và đối tượng con trong Unity

7.2 Tag:

Tag (thẻ) là một thuộc tính của của một Game Object được sử dụng mục đích xác định và phân biệt các đối tượng với nhau

Một thẻ tag có thể dùng cho nhiều Game Object

Mặc định các đối tượng là thẻ Untagged

Để thêm tag mới cho Game Object, ta chọn đối tượng bên vùng Hierarchy (vùng

phân cấp), sau đó nhìn sang vùng Inspector ở bên phải, sau đó ấn vào Tag Add Tag

Trang 21

Ảnh 7.3: Thêm tag mới

Sau đó, ta chỉ việc viết tên tag mới mà ta muốn tạo

Ảnh 7.4: Viết tên tag mới vào khung

Trang 22

Để thêm vào hình ảnh vào dự án, ta chỉ việc kéo thả hình ảnh vào vùng của thẻ Project

Ảnh 7.5: Kéo thả ảnh từ ngoài vào trong dự án để sao chép ảnh

Trang 23

Mặc định khi thêm hình ảnh vào, hình ảnh sẽ thuộc tính là Texture Để có thể dùng trong dự án, ta cần đổi thuộc tính ảnh về dạng Sprite Nhấp chọn hình ảnh, quan sát bên vùng Inspector, sẽ có thuộc tính : Texture Type, ta chỉnh về dạng Sprite

Ảnh 7.6: Điều chỉnh ảnh từ Texture sang Sprite

Sau chỉnh Texture type, ta thấy vùng Inspector sẽ thêm một số thuộc tính, trong đó

có Sprite Mode, bao gồm 2 giá trị : Single và Multible tương ứng với chế độ Single

Sprite hay Multible Sprite

Trang 24

Ảnh 7.7: Thuộc tính Sprite Mode có 2 giá trị là Single hoặc Multiple

Ứng với Multible Sprite, do đây là tập hợp của nhiều hình ảnh nên ta cần phân chia chúng thành các ảnh nhỏ Để thực hiện, ta ấn vào nút Sprite Editor

Trang 25

Ảnh 7.8: Điều chỉnh ảnh sang Mutiple và tiến hành cắt ảnh

Khi đó, một cửa sổ mới sẽ hiện lên Để thực hiện tạo các ảnh nhỏ, ta ấn Slice

Ở thuộc tính Type: ta có 2 loại Automatic (máy tính tự cắt ảnh) và Grid (cắt ảnh

theo các ô vuông mà ta định kích thước trước)

Ở đây ta chọn Automatic vì các hình ảnh con của ta sắp xếp lung tung, nên chọn chế

độ này là tốt nhất Sau đó ta ấn Slice  Apply

Trang 26

Ảnh 7.9: Các bước để cắt ảnh

Sau khi hoàn thành, từ ảnh gốc ban đầu, ta có được những ảnh nhỏ

Trang 27

8 ANIMATION:

Animation là một hình ảnh động mô tả một đối tượng nào đó trong game

8.1 Các kĩ thuật toán Animation:

8.1.1 Kỹ thuật key frame:

Đối với kỹ thuật key frame, người ta sử dụng một hình ảnh cho một key frame của hành động

Với kĩ thuật này, một animation có thể hiểu là một loạt các hình ảnh liên tiếp được phát nhanh để mắt cảm thấy vật như đang chuyển động

Trang 28

Ảnh 8.1: Kĩ thuật tạo animation từ key frame

Để tạo ra chuyển động, ta sẽ vẽ một key frame tại thời điểm đầu và thay đổi tuần tự các key frame sau, chúng ta sẽ có được một animation

Đây là phương pháp đơn giản nhất để tạo chuyển động, nhưng lại tốn kém về bộ nhớ, vì ta phải tốn nhiều sprite cho nhiều chuyển động khác nhau

8.1.2 Kỹ thuật bộ xương:

Đối với kỹ thuật này, người ta chia đối tượng ra thành nhiều sprite, mỗi sprite là một

bộ phận của đối tượng (giống như 1 khúc xương của bộ xương) Để tạo ra một key frame mới, ta sẽ thay đổi các sprite về vị trí, độ lớn, xoay của các sprite thành phần

có liên quan đến chuyển động Sau đó kết hợp các key frame lại với nhau như kỹ thuật key frame để tạo thành các animation

Trang 29

8.2 Tạo animation theo kỹ thuật Key Frame:

Bước 1: Mở cửa sổ Animation bằng cách: ấn vào menu Window  Animation

Ảnh 8.3: Mở cửa sổ Animation

Bước 2: Ta cần tạo một Game Object Để thực hiện, ta kéo sprite và thả vào vùng Scene

Trang 30

Ảnh 8.4: Tạo một đối tượng bằng cách kéo thả

Bước 3: Chọn đối tượng và chuyển qua cửa sổ Animation Ấn vào vùng kí hiệu ở

ảnh dưới và chọn “Create New Clip”

Trang 31

Ảnh 8.5: Tạo animation mới

Chọn nơi lưu trữ, đặt tên và lưu lại animation cần tạo

Ảnh 8.6: Lưu trữ animation

Trang 32

Thêm thuộc tính Sprite cho animation bằng cách chọn Add Curve  Sprite

Renderer  Sprite

Ảnh 8.7: Thêm thuộc tính Sprite

Khung kịch bản sẽ hiện ra, ta tiến hành kéo thả các hình ảnh cần trong animation vào các mốc thời gian

Lưu ý: Ta có thuộc tính Sample là số khung hình trong 1 giây

Trang 33

Ảnh 8.8: Kéo thả từng ảnh vào từng key frame

9 SCRIPT:

9.1 Cách tạo Script:

Script là một tập tin (cũng là Game Component) chứa các mã điều khiển cho một đối tượng nào đó trong game, được viết bằng C# hay Javascript hoặc BOO (Trong bài hướng dẫn này, chúng ta sẽ sử dụng C#)

Để tạo Script, ta nhấn chuột phải vào vùng Project và chọn Creat  C# Script

Trang 34

Ảnh 9.1: Tạo Script mới

Với mỗi Script tạo ra, ta cần chỉ định Script này thuộc về đối tượng nào Ta thực hiện thêm Script vào đối tượng bằng cách kéo thả Script ở vùng Project vào đối tượng ở vùng Hierarchy

Trang 35

Ảnh 9.2: Kéo thả để thêm Script vào đối tượng

Để gõ mã lệnh cho file Script, ta nhấp đúp chuột vào file Script, khi đó, cộng cụ lập trình tích hợp sẵn là Mono Develop sẽ được chạy

Lưu ý: Tên file script cần trùng với tên class

Trang 36

Ảnh9.3: Tên class cần trùng với tên tập tin

Mới bắt đầu chúng ta cần quan tâm đến một số hàm cơ bản sau:

+ Start(): Được gọi 1 lần đầu tiên sau khi khởi tạo đối tượng, trước khi vào Update + Update(): Được gọi liên tục sau mỗi frame, sau Start

+ OnWillRenderObject(): Được gọi liên tục sau một frame sau Update Thường thì

ta sẽ ít đụng đến hàm này

+ OnDestroy(): Được gọi khi đối tượng bị huỷ

Trang 37

9.2 Một số xử lý cơ bản:

Truy cập vào đối tượng game hiện tại: this.gameObject

Thay đổi vị trí, tỉ lệ, quay đối tượng: gameObject.transform(.position, scale, rotate)

Để huỷ một đối tượng game: Destroy(GameObject)

Để tạo một prefab trong quá trình thực thi game: Instantiate(gameObject, Vector3, Quaternion)

Kiểm tra xem một key được bấm, được giữ, được thả ra hay không:

Input.GetKeyDown(keyCode), GetKey(keyCode), GetKeyUp(keyCode)

Input.GetAxis ("Horizontal") trả về giá trị số thực trong khoảng -1 1 nếu có sự

kiện các key right hoặc left được bấm (key ngang)

Input.GetAxis ("Vertical") trả về giá trị số thực trong khoảng -1 1 nếu có sự kiện các key up hoặc down được bấm (key dọc)

OnMouseDown, OnMouseUp, OnMouseDrag các hàm xử lý chuột

gameObject.GetComponentComponentName>() get Game Component được

đính kèm trong gameObject hiện tại có thể là: Animator, Transform

10 THÀNH PHẦN VẬT LÝ:

Thành phần vật lý hỗ trợ các thao tác về vật lý như: tác dụng lực, trọng lực trái đất,

ma sát

Để thêm thành phần vật lý ta làm như sau: ở Hierarchy, chọn đối tượng cần thêm,

sau đó trên thanh menu chọn Component  Physics 2D Rigidbody 2D

Trang 38

Ảnh 10.1: Thêm thành phần vật lí vào đối tượng

Ta sẽ thấy ở cửa sổ Inspector khi chọn đối tượng cần thêm sẽ có một Component nữa là Rigidbody 2D như sau:

Trang 39

Ảnh 10.2: Component vật lí đã được thêm vào đối tượng

- Mass: là khối lượng của đối tượng

- Linear Drag: Hệ số ma sát của vật đối với chuyển động kéo

- Angular Drag: Hệ số ma sát của vật đối với chuyển động quay

- Gravity Scale: giống như hệ số G trong vật lý (~ 9.81), chỉ sự ảnh hưởng của

lực hút trái đất Ta có thể đặt = 0, tức là không ảnh hưởng bởi lực hút trái đất

- Is Kinematic: loại bỏ tác dụng vật lý ra khỏi đối tượng, thường sử dụng với

các đối tượng như tường, nền

- Fixed Angle: Đối tượng luôn nằm một góc cố định Không thay đổi khi tương

tác vật lý

11 THÀNH PHẦN XỬ LÝ VA CHẠM:

Để phân biệt giữa hình ảnh nền và hình ảnh dùng cho nhân vật, Unity đưa ra một khái niệm là Collider (thành phần xử lí va chạm) Collider sẽ được dùng để bắt các

sự kiện tương tác giữa các nhân vật

Ở Hierarchy, chọn đối tượng cần thêm, trên thanh menu chọn Component Physics 2D  Circle Collider 2D

Ngày đăng: 02/11/2014, 17:32

TỪ KHÓA LIÊN QUAN

w