Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
3,22 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC - KHOÁ LUẬN TỐT NGHIỆP NGÀNH CỬ NHÂN CÔNG NGHỆ THÔNG TIN ĐỀ TÀI SỬ DỤNG UNITY 3D ENGINE ĐỂ XÂY DỰNG GAME ĐUA XE TRÊN MÔI TRƯỜNG ANDROID Sinh viên : BÙI HOÀNG ĐIỂM GVHD : ThS Trần Uyên Trang Lớp : 10CNTT4 (2010-2014) ĐÀ NẴNG Tháng 5/2014 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] LỜI CẢM ƠN Hồn thành khố luận tốt nghiệp này, tơi xin chân thành cảm ơn: - Ban giám hiệu nhà trường Đại học Sư phạm Đà Nẵng, thầy cô giáo khoa Tin học đà dìu dắt tơi suốt năm học qua - Cảm ơn cô giáo – ThS Trần Uyên Trang trực tiếp tận tình hướng dẫn - Cảm ơn động viên, góp ý bạn bè khố Mặc dù cố gắng hồn thành khóa luận với tất nổ lực thân, chắn khóa luận khơng tránh khỏi sai sót hạn chế, kính mong thơng cảm, bảo quý Thầy Cô bạn Tôi xin chân thành cảm ơn Sinh viên Bùi Hoàng Điểm Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] MỤC LỤC LỜI CẢM ƠN DANH MỤC TỪ VIẾT TẮT DANH SÁCH BẢNG BIỂU DANH SÁCH HÌNH VẼ PHẦN MỞ ĐẦU I.LÝ DO CHỌN ĐỀ TÀI II.MỤC TIÊU ĐỀ TÀI III.MỤC ĐÍCH NGHIÊN CỨU IV.PHƯƠNG PHÁP NGHIÊN CỨU .2 V.PHẠM VI ĐỀ TÀI CHƯƠNG I: TỔNG QUAN CƠ SỞ LÝ THUYẾT I.GIỚI THIỆU VỀ ANDROID 1.SỰ PHÁT TRIỂN CỦA ANDROID 2.GAME 3D TRÊN ANDROID II.TỔNG QUAN VỀ UNITY UNITY LÀ GÌ 2.SƠ LƯỢC LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA UNITY 11 2.1 HÌNH THÀNH .11 2.2 GIẢI THƯỞNG 11 2.3 KHÁCH HÀNG 12 TÍNH NĂNG CỦA ENGINE UNITY 12 CÁC KHÁI NIỆM CƠ BẢN TRONG UNITY 13 4.1 ASSET 13 4.2 SCENE 13 4.3 GAME OBJECT 14 4.4 COMPONENT 14 4.5 SCRIPT 15 4.6 PREFAB .17 SƠ NÉT VỀ GIAO DIỆN CỦA UNITY 17 5.1 CỬA SỔ SCENE VÀ HIERARCHY 18 5.2 INSPECTOR 19 5.3 CỬA SỔ GAME .19 Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] 5.4 CỬA SỔ PROJECT .20 TỔNG QUAN KIẾN TRÚC ENGINE UNITY TRÊN ANDROID 20 6.1 KIẾN TRÚC TỔNG QUAN 20 6.2 CHU KỲ SỐNG CỦA THÀNH PHẦN SCRIPT GẮN TRÊN ĐỐI TƯỢNG GAME 22 KẾT LUẬN .23 CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ 24 I.LOAD MƠ HÌNH 3D 24 II.CHUYỂN ĐỘNG CỦA MƠ HÌNH NHÂN VẬT 3D 27 III.CHUYỂN ĐỘNG CỦA CON ĐƯỜNG 29 IV.NGUỒN SÁNG 30 V.TẠO HIỆU ỨNG PARTICLE 31 VI.XÂY DỰNG GIAO DIỆN GAME .36 CHƯƠNG III: THỰC HIỆN CHƯƠNG TRÌNH 40 I.TỔNG QUAN – GIỚI THIỆU GAME 40 II.CÁC QUY LUẬT CHƠI CHÍNH .41 1.DI CHUYỂN 41 2.TÍNH MẠNG 42 3.TÍNH ĐIỂM .42 4.MUA ĐỒ .43 III.CÁC KHÁI NIỆM TRONG GAME 43 1.XE 43 2.DISTANCE 44 3.COINS 44 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45 I.KẾT QUẢ ĐẠT ĐƯỢC 45 II.HƯỚNG PHÁT TRIỂN 48 TÀI LIỆU THAM KHẢO 49 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 50 XÁC NHẬN CỦA GIẢNG VIÊN PHẢN BIỆN 51 Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] DANH MỤC TỪ VIẾT TẮT 2D Dimension 3D Dimension PC Personal Computer GUI Graphical User Interface Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] DANH SÁCH BẢNG BIỂU Bảng Trang Bảng 1.Các thuộc tính Elipsoid Particle Emiter 33 Bảng 2.Các thuộc tính ParticleRenderer 34 Bảng 3.Các thuộc tính Particle Animator 35 Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] DANH SÁCH HÌNH VẼ Hình 1.1 Một số hình ảnh điện thoại chạy hệ điều hành Android…………………………4 Hình 1.2 Bảng thống kê tình hình cài đặt ứng dụng tiêu thụ điện thoại theo hệ điều hành………………………………………………………………………………………… Hình 1.3 Thống kê tình hình phiên Android tính đến Android 4.1…………… …6 Hình 1.4 Số liệu thống kê tỷ lệ ứng dụng game……………………………………7 Hình 1.5 Một số hình ảnh game 3D Android………………………………………8 Hình 1.6 Hình minh họa đa nền………………………………………………………… 10 Hình 1.7 Asset Unity………………………………………………………………….13 Hình 1.8 Các scene Unity…………………………………………………………… 14 Hình 1.9 Kéo tài nguyên vào Scene để sử dụng……………………………………… ….14 Hình 1.10 Các thành phần đối tượng Camera…………………………………… 15 Hình 1.11 Cách tạo file script mới…………………………………………………… … 16 Hình 1.12 Lập trình Unity C# 16 Hình 1.13 Một file script gắn vào đối tượng ……………………………………… 17 Hình 1.14 Giao diện Editor Unity……………………………………………… … 18 Hình 1.15 Cửa sổ Inspector hiển thị thơng tin đối tượng…………………….………19 Hình 1.16 Tổng quan kiến trúc Unity…………………………………………………… 21 Hình 1.17 Chu kỳ sống thành phần script…………………………………………….22 Hình 2.1 Minh họa kéo thả prefab vào thuộc tính script …………………………….25 Hình 2.2 Prefab resources……………………………………………………………25 Hình 2.3 Đối tượng game chứa nhiều đối tượng game con……………………………….26 Hình 2.4 Mơ hình nhân vật 3D trước sau gán texture…………………………… 26 Hình 2.5 Mơ hình 3D bên chứa nhiều animation ………………………………….27 Hình 2.6 Mơ hình 3D chứa animation……………………………………………… 28 Hình 2.7 Hình minh họa sau đổi tên import vào project ………………………….28 Hình 2.8 Cách xử lý đường đua game……………………………………………….30 Hình 2.9 Cảnh vật chiếu sáng ……………………………………………………….31 Hình 2.10 Thêm thành phần Ellipsoid Particle Emitter ………………………………….32 Hình 2.11 GUI Button…………………………………………………………………… 37 Hình 2.12 Áp dụng GUIStyle lên Label……………………………………………………38 Hình 2.13 Button rê chuột không rê chuột…………………………………………38 Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] Hình 2.14 Vẽ hình ảnh GUI………………………………………….……………….39 Hình 3.1 Người chơi điều khiển xe tránh vật cản màu đỏ…………………………….40 Hình 3.2 Người chơi dùng tiền game mua xe mới……………………………………… 41 Hình 3.3 Người chơi bấm vào cạnh hình để điều khiển xe……………………… 41 Hình 3.4 Người chơi nhặt vật màu xanh tăng mạng……………………… … 42 Hình 3.5 Điểm số kết thúc game ………………………………………………………43 Hình 3.6 Xe - đối tượng game………………………………………………… 44 Hình1 Menu game………………………………………………………… … 45 Hình2 Giao diện chơi game……………………………………………………………… 46 Hình Giao diện Setting……………………………………………………………………46 Hình Giao diện Store…………………………………………………………………… 47 Hình Giao diện nút Power……………………………………………………………… 47 Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] Luận văn tốt nghiệp BÙI HỒNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] PHẦN MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI I Ngày nay, điện thoại di động trở thành phương tiện thiếu sống ngày Điện thoại khơng cịn đơn dành cho gọi hay nhắn tin nữa, nhu cầu sử dụng điện thoại đa dạng phong phú, khơng thể bỏ qua nhu cầu giải trí Game trên điện thoại di động trở thành thú vui số giới trẻ Tuy game điện thoại di động không mang lại cảm giác PC tính tiện lợi rõ, chơi lúc nơi Trước ứng dụng game di động hầu hết đồ họa 2D, với bùng nổ công nghệ dẫn đến thiết bị di động có đủ sức mạnh để chạy ứng dụng địi hỏi cấu hình cao, ứng dụng đồ họa phức tạp khơng gian chiều Chính mà nhu cầu chơi game 3D di động trở nên tăng cao, hãng sản xuất liên tục cho đời thể loại game 3D hình ảnh đẹp mắt, âm sống động chạy thiết bị di động Song song đó, game Engine 3D không ngừng phát triển hỗ trợ làm game cho thiết bị di động với nhiều hệ điều hành khác Android, iOS Nội dung luận văn em thực bao gồm việc tìm hiểu Engine Unity sử dụng Unity để xây dựng game 3D cho điện thoại di động môi trường Android II MỤC TIÊU ĐỀ TÀI Đề tài thực nhằm mục tiêu sau: Đề tài thuộc hướng tìm hiểu cơng nghệ từ xây dựng ứng dụng Mục tiêu đề tài tìm hiểu engine Unity sử dụng Unity xây dựng thử nghiệm game 3D thể loại chơi endless run chạy môi trường Android cho thiết bị di động III MỤC ĐÍCH NGHIÊN CỨU Đề tài thực nhằm mục đích: - Tìm hiểu tổng quan kiến trúc Unity cách tạo lập ứng dụng Unity Luận văn tốt nghiệp BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] Hình 2.12 Áp dụng GUIStyle lên Label Ví dụ sau vẽ Button với background hình Vì vẽ hình nên không cần quan tâm đến định dạng text GUIStyle nữa, quan tâm đến hình button với kiện chuột tương tác button mà void OnGUI() { GUIStyle myStyle = new GUIStyle(); myStyle.normal.background = (Texture2D)Resources.Load("Button/exit"); myStyle.hover.background = (Texture2D)Resources.Load("Button/exit_hover"); if (GUI.Button(new Rect(Screen.width / 2, Screen.height / 2, 50, 50), "My button", myStyle)) { //do something } } Hình 2.13 Button rê chuột không rê chuột Để vẽ Image hình, sử dụng Texture2D, tương tự đối tượng Bimap hay Image bên ngôn ngữ C# Để load hình từ Resources vẽ hình dùng phương thức DrawTexture() sau: Texture2D myImage = (Texture2D)Resources.Load("background_image"); GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height), myImage); Luận văn tốt nghiệp 38 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] Hình 2.14 Vẽ hình ảnh GUI Kết luận Với lớp GUI Unity, hồn tồn có xây dựng nên giao diện tuyệt vời cho ứng dụng game Ngoài phương thức lớp GUI nêu cịn nhiều phương thức vẽ đối tượng khác Radio, Checkbox, Slider… Luận văn tốt nghiệp 39 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] CHƯƠNG III: THỰC HIỆN CHƯƠNG TRÌNH I TỔNG QUAN – GIỚI THIỆU GAME Đặc trưng dòng game endless run em xây dựng thời điểm có người chơi điều khiển xe Một chơi bắt đầu với xe Người chơi điều khiển xe tránh vật thể bên cạnh nhặt mạng để tăng số mạng chơi Hình 3.1 Người chơi điều khiển xe tránh vật cản màu đỏ Sau kết thúc lượt chơi, số điểm đạt đc quy đổi thành tiền tệ game Số tiền dùng để mua xe có sẵn game Người chơi Share kết đạt lên facebook cho bạn bè biết chơi Luận văn tốt nghiệp 40 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] Hình 3.2 Người chơi dùng tiền game mua xe II CÁC QUY LUẬT CHƠI CHÍNH DI CHUYỂN Người chơi bấm vào cạnh hình điện thoại tương ứng với lách trái, lách phải để điều khiển xe Nếu người chơi tồn lâu xe di chuyển nhanh Hình 3.3 Người chơi bấm vào cạnh hình để điều khiển xe Luận văn tốt nghiệp 41 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] TÍNH MẠNG Người chơi điều khiển xe, va chạm vào vật thể màu đỏ bị mạng Ngược lại, người chơi va chạm vào vật thể màu xanh tăng mạng Nếu người chơi hết số mạng xe nổ lượt chơi kết thúc Hình 3.4 Người chơi nhặt vật màu xanh tăng mạng TÍNH ĐIỂM Điểm số tính dựa vào khoảng cách đường từ lúc bắt đầu lúc chết Số điểm đổi tiền game dựa theo tỉ lệ 1/100 Luận văn tốt nghiệp 42 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] Hình 3.5 Điểm số kết thúc game MUA ĐỒ Tiền kiếm dùng để mua loại xe game với mức giá khác Sau mua dùng xe để chơi game Chú ý: Các loại xe để tăng tính thẩm mỹ, không ảnh hưởng tới gameplay III CÁC KHÁI NIỆM TRONG GAME XE Xe đối tượng game điều khiển người chơi Luận văn tốt nghiệp 43 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity mơi trường Android] Hình 3.6 Xe - đối tượng game DISTANCE Distance quãng đường game, thông số dùng để tính điểm cho người chơi sau lượt chơi COINS Coins đơn vị tiền tệ game, dùng để mua xe Được tính dựa số điểm người chơi Luận văn tốt nghiệp 44 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN I KẾT QUẢ ĐẠT ĐƯỢC Sau tìm hiểu phương pháp xây dựng game 3D với engine Unity cho Android em hoàn thành ứng dụng game thuộc thể loại chơi endless run Trong trình xây dựng game, em nêu số vấn đề gặp phải, đưa số hướng giải pháp để giải Các hình giao diện game mà em xây dựng luận văn này: Hình Menu game Ở hình Menu chính, người chơi chọn “Play” để vào trị chơi, “Store” để vào hàng mua xe Nút “ Setting” để cài đăt game Nut “Power” để thoát game Luận văn tốt nghiệp 45 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] Hình2 Giao diện chơi game Hình Giao diện Setting Luận văn tốt nghiệp 46 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] Hình Giao diện Store Hình Giao diện nút Power Luận văn tốt nghiệp 47 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] II HƯỚNG PHÁT TRIỂN Tối ưu hóa xử lý giúp game chạy nhanh Game hỗ trợ chế độ nhiều người chơi lúc Tăng thêm số lượng chơi để người chơi thêm nhiều lựa chọn Cung cấp thêm công cụ để người chơi chỉnh sửa tạo cho riêng hình ảnh nhân vật, hiệu ứng âm thanh, … Luận văn tốt nghiệp 48 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] TÀI LIỆU THAM KHẢO [1] Ryan Henson Creighton, Unity 3D Game Development by Example, Packt Publishing [NXB 2010] [2] Will Goldstone, Unity Game Development Essential, Packt Publishing [NXB 2009] [3] Efraim Meulenberg, Game Development with Unity, VTC, [NXB 2010] [4] Efraim Meulenberg, Game Development for iPhone/iPad Using Unity iPhone, VTC, [NXB 2010] [5] TornadoTwins, Wormgame Cartoony Series http://www.unityprefabs.com/wormgame-cartoony-series-tutorial.html [6] Zak Parrish, Unity Fundamentals http://www.3dbuzz.com/vbforum/content.php?176 [7] Chad and Eric, Unity Training http://walkerboystudio.com/html/unity_training _free .html [8] Các website liên quan http://www.theguardian.com/ http://developer.android.com/ http://www.androlib.com/appstatstype.aspx http://www.vietgiaitri.com/ http://tinhte.vn/ http://www.dalats.com/forum/ http://www.eurodroid.com/ http://unity3d.com/ Luận văn tốt nghiệp 49 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ……………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Đà Nẵng, ngày … tháng … năm 2014 CÁN BỘ HƯỚNG DẪN Luận văn tốt nghiệp 50 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] XÁC NHẬN CỦA GIẢNG VIÊN PHẢN BIỆN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ……………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Đà Nẵng, ngày … tháng … năm 2014 GIẢNG VIÊN PHẢN BIỆN Th.S Hồ Ngọc Tú Luận văn tốt nghiệp 51 BÙI HOÀNG ĐIỂM – [Phát triển game 3D với Unity môi trường Android] HẾT Luận văn tốt nghiệp 52 ... làm game cho thiết bị di động với nhiều hệ điều hành khác Android, iOS Nội dung luận văn em thực bao gồm việc tìm hiểu Engine Unity sử dụng Unity để xây dựng game 3D cho điện thoại di động môi trường. .. Unity môi trường Android] Một vài game 3D tiêu biểu Android: (a) Game Hero of Sparta (c) Real Football 2011 v3.1.2 (b) Game đua xe Asphalt5 (d) Brother in Arm Hình 1.5 Một số hình ảnh game 3D Android. .. Unity TỔNG QUAN KIẾN TRÚC ENGINE UNITY TRÊN ANDROID 6.1 KIẾN TRÚC TỔNG QUAN Engine Unity hỗ trợ cho UnityAPI để viết script game UnityAPI API lập trình game Unity mạnh UnityAPI chứa đối tượng phương