Tải bản đầy đủ (.pdf) (50 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.07 MB, 50 trang )


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


Phát triển game đa nền tảng trên Unity 1
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
6.1. Tạo Project (dự án) mới: 14

Phát triển game đa nền tảng trên Unity 2
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



Phát triển game đa nền tảng trên Unity 3

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

- 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:
3.1. Hỗ trợ kéo thả:
Thay vì phải canh chỉnh hình ảnh theo hệ tọa độ, Unity hỗ trợ ta kéo thả các hình
ảnh, đối tưởng một cách trực quan.
Ví dụ: ta có thể kéo các hình ảnh từ vùng Project vào vùng Scene.

Phát triển game đa nền tảng trên Unity 4

Ả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

Phát triển game đa nền tảng trên Unity 5
3.3.Hỗ trợ chế độ chơi thử:
Unity hỗ trợ chế độ chơi thử ngay khi lập trình, điều này giúp ta tiết kiệm thời gian
trong việc kiểm thử.


Ảnh 3.1.3:Khả năng chơi thử game ngay khi lập trình
3.4. Hỗ trợ các yếu tố Vật lí:
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.


Phát triển game đa nền tảng trên Unity 6

Ả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ợ

Phát triển game đa nền tảng trên Unity 7
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:
4.1. Game Object:
Một đối tượng cụ thể trong game gọi là một game object, có thể là nhân vật, đồ vật
nào đó.
4.2. Component:
Component tạm dịch là thành phần. Một đối tượng trong game sẽ có nhiều thành

phần cấu tạo nên nó như là hình ảnh (sprite render), tập hợp các hành động
(animator), thành phần xử lý va chạm (collision), tính toán vật lý (physical), mã điều
khiển (script), các thành phần khác mỗi thứ như vậy gọi là một component của
Game Object.
4.3. Sprite:
Sprite được hiểu đơn giản là một hình ảnh 2D của một nhân vật trong game, ảnh đồ
vật, ảnh nền


Ảnh 4.1: Minh họa về Sprite


Phát triển game đa nền tảng trên Unity 8
4.4. Animation:
Animation là tập một hình ảnh động dựa trên sự thay đổi liên tục của nhiều sprite
khác nhau.

Ảnh 4.2: Ảnh minh họa cho thiết lập Animation trong Unity
4.5. Key Frame:
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.

Phát triển game đa nền tảng trên Unity 9
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.

Phát triển game đa nền tảng trên Unity 10

Ảnh 4.5: Minh họa 1 file âm thanh trong Unity
4.8. Script:
Script là tập tin chứa các đoạn mã nguồn, dùng để khởi tạo và xử lý các đối tượng
trong game.
Trong Unity có thể dùng C#, Java Script, BOO để lập trình.

Phát triển game đa nền tảng trên Unity 11

Ả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.

Phát triển game đa nền tảng trên Unity 12

Ảnh 4.7: Hình thức lưu trữ của Unity đối với Scene
4.10. Assets:
Assets là một thư mục bao gồm tất cả những gì phục vụ cho dự án game như sprite,

animation, sound, script, scenes…

Ảnh 4.8: Minh họa cho việc lưu trữ của thư mục Assets trên máy tính.
4.11. Camera:
Camera là một Game Object đặc biệt trong scene, dùng để xác định tầm nhìn, quan
sát các đối tượng khác trong game.

Phát triển game đa nền tảng trên Unity 13
5. CÁC VÙNG CHỨC NĂNG TRONG UNITY:


5.1. Hierarchy:
Phần quản lý tất cả các đối tượng trong scenes, có thể chọn lựa, đổi tên, xoá các đối
tượng ra khỏi game.
5.2. Scence:
Phần hiển thị các đối tượng trong game một cách trực quan, là môi trường thao tác
kéo thả, lựa chọn, di chuyển, chỉnh sửa các đối tượng trong quá trình lập trình.
Phần này có để thiết lập một số thông số như hiển thị ánh sáng, âm thanh, cách nhìn
2D hay 3D .
5.3. Game :
Phần hiển thị game và chơi thử game khi thực thi.
5.4. Inspector:
- Phần hiển thị các component của một Game Object và các thông số của các
component.
5.5. Project:
- Phần hiển thị thư mục Assets, chứa tất cả các tài nguyên của dự án game.
5.6. Console:
Phần hiển thị các dòng xuất (log) hoặc dòng thông báo trong quá trình debug.

Phát triển game đa nền tảng trên Unity 14

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.

Phát triển game đa nền tảng trên Unity 15

Ả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.

Phát triển game đa nền tảng trên Unity 16


Ả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


Phát triển game đa nền tảng trên Unity 17

Ả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.


Phát triển game đa nền tảng trên Unity 18

Ả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.

Phát triển game đa nền tảng trên Unity 19

Ả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.

Phát triển game đa nền tảng trên Unity 20

Ả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

Phát triển game đa nền tảng trên Unity 21

7.3. Sprite:
Sprite có thể được hiểu là hình ảnh ta cần dùng trong game. Có 2 loại sprite là Single

Sprite và Multiple Sprite.




Multiple Sprite

Single Sprite Multiple Sprite
Để 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


Phát triển game đa nền tảng trên Unity 22
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.

Phát triển game đa nền tảng trên Unity 23

Ả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.


Phát triển game đa nền tảng trên Unity 24

Ả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.

×