編輯推薦
從初學者入門角度講解Unity遊戲開發
讓讀者快速學會如何使用Unity製作3D遊戲
以兩種語言去講解遊戲腳本的編寫
入門階段我們使用JavaScript語言介紹,進階階段使用C#語言
每章都含有豐富的遊戲實例與源代碼
最後一章以一個第1人稱射擊類3D遊戲為實例充分介紹遊戲實戰開發過程
內容簡介
《Unity3D遊戲開發》通過實例詳細介紹瞭如何使用Unity 進行遊戲開發,書中先簡要介紹瞭Unity 環境搭建、編輯器和GUI 遊戲界麵相關的知識,接著介紹瞭如何使用C# 和JavaScript 構建遊戲腳本,添加樹、草、石頭等模型以及鍵盤事件、鼠標事件和3D 模型動畫相關的內容,然後介紹瞭持久化數據、音頻與視頻播放等內容,最後以一款第1人稱射擊類遊戲為原型,嚮讀者詳細介紹遊戲製作的整個過程。
本書適閤具備一些JavaScript 與C# 語言基礎,並且想快速入門Unity 3D 遊戲開發的人員閱讀。
作者簡介
宣雨鬆,網名雨鬆MOMO。首款入駐美國蘋果店數字體育産品GolfSense Unity3D主程,CSDN博客專傢,51CTO博客之星,51CTO移動開發論壇版主,Unity聖典開發論壇版主,5年以上移動遊戲與軟件開發經驗。曾經領導與參與的遊戲項目包括:GolfSense、新少林寺、天降少女、遊龍戲鳳西門慶等。
內頁插圖
精彩書評
如今移動平颱iOS、Android、Windows Phone 7智能手機的迅速崛起,讓整個遊戲行業的競爭愈演愈烈。在各個遊戲平颱相互競爭的同時,Unity跨平颱遊戲引擎齣現在瞭我們麵前,跨平颱將會開啓下一代遊戲開發的模式,本書基於Unity 3.5編寫,通過豐富的遊戲實例,以JavaScript與C#這兩種語言介紹Unity開發。對於入門Unity開發的讀者,這本書是極好的參考資料,強烈推薦!
——Unity聖典
Unity 3D跨平颱遊戲引擎以迅雷不及掩耳之勢齣現在我們麵前,橫跨9種主流遊平颱,具有齣色的物理引擎以及3D渲染效果。當你在Unity開發門外徘徊時,本書絕對值得你閱讀。此外,每章最後都有一個遊戲示例引導你快速上手Unity開發。
——51CTO産品部副經理老友
與其他遊戲引擎相比,Unity顯而易見的特點就是,一次開發即可輕鬆部署到Windows、Mac、iOS、Android、Wii、PS3等平颱,告彆以往高難度的、耗時的跨平颱遊戲開發,使快速、高質量的遊戲開發成為可能。本書詳盡介紹瞭Unity的安裝、使用及深入開發等,並通過相應的實例來鞏固知識點,是快速入門及提高Unity技術的必備書。願本書能給我們大傢帶來越來越多由Unity開發的優秀遊戲!
——Unity資深用戶四角錢
目錄
第1章 基礎知識
1.1 Unity簡介
1.2 下載與安裝
1.3 遊戲界麵對比
1.4 購買許可證
1.5 打包與發布
1.6 本章小結
第2章 編輯器的結構
2.1 遊戲工程
2.1.1 創建工程
2.1.2 打開工程
2.2 Project視圖
2.3 Hierarchy視圖
2.4 Inspector視圖
2.4.1 簡介
2.4.2 平颱設定
2.5 Scene視圖
2.5.1 視圖介紹
2.5.2 移動視圖
2.5.3 場景工具
2.5.4 Scene視圖控製條
2.6 Game視圖
2.6.1 運行遊戲
2.6.2 Game視圖控製條
2.6.3 導齣與導入
2.7 第一個遊戲實例(拓展訓練)
2.8 本章小結
第3章 GUI遊戲界麵
3.1 GUI高級控件
3.1.1 Label控件
3.1.2 Button控件
3.1.3 TextField控件
3.1.4 ToolBar控件
3.1.5 Slider控件
3.1.6 ScrollView控件
3.1.7 群組視圖
3.1.8 窗口
3.1.9 GUI Skin
3.1.10 自定義風格組件
3.2 GUILayout遊戲界麵布局
3.2.1 GUI與GUILayout的區彆
3.2.2 GUILayoutOption界麵布局設置
3.2.3 綫性布局
3.2.4 控件偏移
3.2.5 對齊方式
3.2.6 實例--添加與關閉窗口
3.2.7 設置字體
3.2.8 顯示中文
3.3 2D貼圖與幀動畫
3.3.1 繪製貼圖
3.3.2 繪製動畫
3.3.3 實例--人物移動
3.3.4 實例--用Unity開發2D遊戲
3.4 遊戲實例--遊戲主菜單
3.5 本章小結
第4章 Unity遊戲腳本
4.1 MonoDevelop腳本編輯器
4.1.1 編輯器簡介
4.1.2 調試
4.2 Unity腳本的生命周期
4.3 利用腳本來操作遊戲對象
4.3.1 創建遊戲對象
4.3.2 獲取遊戲對象
4.3.3 添加組件與修改組件
4.3.4 發送廣播與消息
4.3.5 剋隆遊戲對象
4.3.6 腳本組件
4.4 用腳本來控製對象的變換
4.4.1 改變遊戲對象的位置
4.4.2 鏇轉遊戲對象
4.4.3 平移遊戲對象
4.4.4 縮放遊戲對象
4.5 用C#編寫腳本
4.5.1 繼承MonoBehaviour類
4.5.2 聲明變量
4.5.3 調用方法
4.5.4 JavaScript與C#腳本之間的通信
4.6 工具類
4.6.1 時間
4.6.2 等待
4.6.3 隨機數
4.6.4 數學
4.6.5 四元數
4.7 遊戲實例--小地圖的製作
4.8 本章小結
第5章 遊戲元素
5.1 遊戲地形
5.1.1 創建地形
5.1.2 地形參數
5.1.3 編輯地形
5.1.4 地形貼圖
5.2 地形元素
5.2.1 樹元素
5.2.2 草與網格元素
5.2.3 其他設置
5.3 光源
5.3.1 點光源(Point Light)
5.3.2 聚光燈
5.3.3 平行光
5.4 天空盒子
5.4.1 Skybox組件
5.4.2 在場景中添加天空盒子
5.5 常用編輯器組件
5.5.1 攝像機
5.5.2 攝像機的類型
5.5.3 定製導航菜單欄
5.5.4 預設
5.5.5 抗鋸齒
5.6 遊戲實例--攝像機切換鏡頭
5.7 本章小結
第6章 物理引擎
6.1 剛體
6.1.1 簡單使用
6.1.2 物理管理器
6.1.3 力
6.1.4 碰撞與休眠
6.2 碰撞器
6.2.1 添加碰撞器
6.2.2 物理材質
6.3 角色控製器
6.3.1 第一人稱
6.3.2 第三人稱
6.3.3 控製組件
6.3.4 移動與飛行
6.3.5 碰撞監測
6.4 射綫
6.4.1 射綫的原理
6.4.2 碰撞監測
6.5 關節
6.5.1 關節介紹
6.5.2 實例--關節組件
6.6 粒子特效
6.6.1 粒子發射器
6.6.2 粒子動畫
6.6.3 粒子渲染器
6.6.4 粒子效果實例
6.6.5 布料
6.6.6 路徑渲染
6.7 遊戲實例--擊垮圍牆
6.8 本章小結
第7章 輸入與控製
7.1 鍵盤事件
7.1.1 按下事件
7.1.2 抬起事件
7.1.3 長按事件
7.1.4 任意鍵事件
7.1.5 實例--組閤按鍵
7.2 鼠標事件
7.2.1 按下事件
7.2.2 抬起事件
7.2.3 長按事件
7.3 自定義按鍵事件
7.3.1 輸入管理器
7.3.2 按鍵事件
7.3.3 按鍵軸
7.3.4 實例--觀察模型
7.4 模型與動畫
7.4.1 模型的載入
7.4.2 設置3D動畫
7.4.3 播放3D動畫
7.4.4 動畫剪輯
7.4.5 動畫的幀
7.5 GL圖像庫
7.5.1 繪製綫
7.5.2 實例--繪製麯綫
7.5.3 繪製四邊形
7.5.4 繪製三角形
7.5.5 繪製3D幾何圖形
7.5.6 綫渲染器
7.5.7 網格渲染
7.6 遊戲實例--控製人物移動
7.7 本章小結
第8章 持久化數據
8.1 PlayerPrefs類
8.1.1 保存與讀取數據
8.1.2 刪除數據
8.1.3 實例--注冊界麵
8.2 自定義文件
8.2.1 文件的創建與寫入
8.2.2 文件的讀取
8.2.3 實例--讀取笑話
8.3 應用程序
8.3.1 創建關卡
8.3.2 切換關卡
8.3.3 截屏
8.3.4 打開網頁
8.3.5 退齣遊戲
8.4 資源數據庫
8.4.1 加載資源
8.4.2 創建資源
8.4.3 創建文件夾
8.4.4 移動與復製
8.4.5 刪除與刷新
8.4.6 實例--鼠標拖動模型
8.4.7 實例--鼠標揀選
8.5 遊戲實例--接受任務
8.6 本章小結
第9章 多媒體與網絡
9.1 遊戲音頻
9.1.1 音頻介紹
9.1.2 添加音頻
9.1.3 播放音頻
9.2 遊戲視頻
9.2.1 創建視頻
9.2.2 播放視頻
9.2.3 GUI播放視頻
9.3 網絡
9.3.1 下載文件
9.3.2 自定義資源包
9.3.3 下載資源包
9.3.4 創建本地服務器
9.3.5 客戶端連接服務器
9.3.6 實例--多人聊天服務器端
9.3.7 實例--多人聊天客戶端
9.4 遊戲實例--簡單的網絡遊戲
9.5 本章小結
第10章 遊戲實例--突齣重圍
10.1 遊戲狀態機
10.2 遊戲界麵
10.2.1 遊戲主菜單
10.2.2 製作角色血條
10.2.3 製作圖片數字
10.3 遊戲邏輯
10.3.1 發射子彈與擊打目標
10.3.2 敵人的AI
10.3.3 增加敵人預設
10.4 完整的遊戲
10.5 本章小結
精彩書摘
基礎知識
Unity是一款3D跨平颱次世代遊戲引擎,“Unity”一詞的中文解釋為“團結”,好比集閤所有人的力量一起來完成一件偉大的巨作一般,這款遊戲引擎以其強大的跨平颱特性與絢麗的3D渲染效果而聞名齣眾。該款遊戲引擎的開發商是大名鼎鼎的Unity Technologies,近年來該公司處於飛速發展當中。起初Unity的版本為1.0.0,它隻可部署在Mac OS下並且隻能製作iPhone中的遊戲。隨著它不斷發展與壯大,目前Unity的版本已經升級至3.5,可同時部署在Mac OS與Windows兩種操作係統之上,橫跨的主流遊戲平颱高達9種。而且其3D渲染效果也得到瞭大幅度提升。
目前全球的Unity注冊用戶已經超過6000萬,國內首款Unity 3D PC網遊《將魂》已震撼麵市,開啓瞭網絡遊戲的新紀元。此外,大量的Unity 3D網頁遊戲也湧現在我們的視綫當中。在移動方麵,蘋果的App Store中有1500多款遊戲是使用Unity進行開發的,Android平颱中也有不少Unity製作的優秀遊戲。總之,Unity近幾年的蓬勃發展已經讓它在遊戲業內站穩腳跟,讓越來越多的好遊戲脫穎而齣。未來,Unity還會融閤更多炫酷的功能並且橫跨更多的遊戲平颱,請大傢拭目以待。
1.1 Unity簡介
Unity是一款標準的商業遊戲引擎,而商業引擎的主要特點有收費、封閉源碼和功能強大。
關於收費情況,Unity的使用費用非常昂貴,最便宜的普通版許可證也需要400美元,加強版本為1500美元。當然許可證的版本不同,引擎支持的功能也就截然不同。具有加強版許可證的引擎的很多強大功能是有普通版許可證的引擎所不具備的。但是從學習的角度來說,無須購買許可證同樣可以進行,因為許可證更大的用處在於遊戲製作完成後的打包與發布,不購買許可證製作的遊戲是無法發售的,不過,單就學習而言,我們完全無須購買許可證,選擇免費的Unity即可。
遊戲引擎的開源與閉源是兩種主要的趨勢,它們之間各有利弊。如果采取開源形式,那麼為瞭學習與鑽研引擎,使用人數肯定會大幅度提高,缺點是因為已經將源代碼赤裸裸地發放,所以第三方對源碼加以修改,容易造成不勞而獲的情況。而封閉源碼則可以讓引擎更加安全,並且有效地保護引擎的知識産權。Unity就是采取完全封閉源碼的形式。
Unity引擎的功能非常強大,其中一個顯著特點就是跨平颱遊戲開發。跨平颱開發無疑為開發者節省瞭大量時間。平颱之間的差異會直接影響到開發進度,比如屏幕尺寸、操作方式、硬件條件等的不同會給開發者造成巨大的麻煩,因為在不同的平颱中開發者需要花更多時間去做平颱之間的移植開發,而將大量時間浪費在這上麵並不值得。Unity幾乎為開發者完美地解決瞭這一難題,將大幅度減少移植過程中一些不必要的麻煩,但使用它後也並非一點麻煩都不會産生。因為各平颱的硬件條件是不同的,比如PC的硬件條件肯定會強於移動平颱,所以開發者還需要針對不同的平颱做一番取捨。
介紹完Unity的主要特點後,下麵簡要介紹一下開發環境。Unity可部署在Mac OS或Windows操作係統中,在這兩種操作係統中,除瞭客戶端操作習慣與界麵有些差異以外,引擎自身的功能沒有任何區彆。學習Unity之前,請讀者選擇適閤自己的操作係統。
1.2 下載與安裝
在撰寫本書之時,Unity官方的最新版本為Unity 3.5,所以書中將主要以Unity3.5進行講解。後續如果Unity版本進行瞭升級,讀者亦可在Unity官網下載最新版本並結閤本書進行學習。因為Unity支持嚮下兼容,所以在新版本中同樣可以運行書中的所有遊戲例子,這點請讀者放心。
首先我們登錄Unity官網的下載地址開始下載Unity 3.5的安裝包。打開Unity官方下載網頁(如圖1-1所示)後,點擊右側的Download Unity 3.5按鈕,開始下載Unity的程序安裝包。下載時,官網會檢測下載此安裝包所使用的操作係統從而進入對應的下載頁麵,比如讀者使用Mac OS操作係統,下載Unity時下載頁麵就是Mac OS版本,使用Windows操作係統時,下載Unity時下載頁麵就是Windows版本。當然,也可自行選擇下載的Unity程序包,在圖中右下方點擊“ Developing on Windows”鏈接可切換到Windows版本的下載頁麵,點擊“Developing on Mac OS X”鏈接可切換到Mac OS版本的下載頁麵。
如圖1-1所示,在Download Unity 3.5按鈕下方,還有3個比較重要的鏈接,其含義如下所示。
System Requirements:係統需求,開發環境的硬件需求。
License Comparison:許可證對比,許可證版本之間的區彆。
Release Notes:版本發布說明,這裏包含Unity所有曆史版本的發布說明以及它們的下載地址。
圖1-1 Unity下載頁麵
目前Unity支持在Mac OS與Windows兩種操作係統下編寫遊戲,本節我們將嚮讀者詳細介紹如何在這兩種操作係統下搭建Unity開發環境。下麵我們先介紹如何在Mac OS中搭建Unity開發環境。
1. 在Mac OS下安裝Unity
下載完畢後,可以看到Unity 3.5的安裝包,雙擊它後即可進行Unity的安裝。這裏需要說明的是,在首次安裝Unity時需要聯網注冊,隻有注冊成功後纔可以使用Unity。啓動Unity 3.5安裝包後,程序將彈齣Unity的注冊嚮導界麵,如圖1-2所示。
圖1-2 注冊嚮導界麵
在頁麵下方點擊”Register“按鈕後,此時將進入Unity激活界麵,如圖1-3所示。在激活界麵中,首先需要選擇激活方式。激活方式有聯網激活(Internet activation)與手動激活(Manual activation)兩種。聯網激活適用於未購買Unity許可證的用戶,而手動激活適用於已購買許可證的用戶,這裏我們選擇”Internet activation“進行聯網激活。
圖1-3 Unity激活頁麵
點擊”Next“按鈕,程序會自動幫我們打開Unity聯網激活的頁麵,如圖1-4所示。為瞭完成激活,讀者需要按照提示正確填寫注冊的相關信息,它們包括開發者郵箱與公司地址。內容填寫完畢後,直接點擊”Free“按鈕免費激活Unity。
這裏需要說明一下,Unity的試用期隻有30天。我們知道Unity的許可證可分為普通版與加強版兩種,普通版本隻具備Unity的基本功能,而加強版本更為強大,比如增強瞭3D特效、特殊的光影效果、3D渲染特效等。然而30天的使用期限是針對於加強版本的,30天後將無法繼續免費使用加強版本中的功能,需要繳費購買許可證,但是普通版本的功能仍然可以繼續使用。關於普通版本與加強版本兩者的詳細區彆,讀者可點擊”License Comparison“按鈕進行查看。
圖1-4 聯網激活頁麵
點擊”Free“按鈕後,程序將打開注冊完成界麵,如圖1-5所示,這錶示Unity的 Mac OS版本已經徹底在本機中注冊完畢,然後在界麵中點擊下方的”Finish“按鈕,開始我們Unity學習之旅。
圖1-5 注冊完成
需要說明的是,Unity注冊嚮導隻會在本機第一次安裝Unity時齣現,注冊完畢即錶示安裝成功。後續如果讀者需要覆蓋安裝或者升級,隻需打開Unity程序安裝包,根據提示點擊下一步即可。
2. 在Windows下安裝Unity
在Windows下安裝Unity與在Mac OS下安裝有細微的差彆。首先下載Unity 3.5 Windows版本,然後打開它開始安裝。
在Windows中首次安裝Unity同樣需要注冊,由於注冊方法與Mac OS完全
Unity 3D遊戲開發 下載 mobi epub pdf txt 電子書