基於位置的 AR 遊戲類型帶來瞭新的平颱和技術難點。不過這本書會幫你簡化這些難點,展示如何*大化受眾。本書將帶你經曆製作基於位置的 AR 遊戲的過程,涵蓋的核心技術概念有: GIS 基礎概念、移動設備上的 GPS、地理映射、在 Unity 裏映射貼圖、移動設備上的相機、在 Unity 裏的相機貼圖、訪問基於位置的服務,以及其他有用的 Unity 竅門。技術分析部分進一步討論製作一個多人版本遊戲的必需組件。最後,分享一個疑難解答章節,以防你遇到睏難時需要一點點幫助。
你會學到:
√ 製作一個基於位置的增強現實遊戲 Foody Go
√ 在地圖上讓玩傢角色運動起來
√ 使用相機作為遊戲背景
√ 使用 SQLLite4Unity3D 實現數據庫持久化,以跨會話保存庫存物品
√ 創建基礎 UI 元素,包括遊戲界麵、庫存、菜單和設置
√ 用 Google Places API 執行定位和內容搜索
√ 添加圖像著色器效果來改進遊戲氣氛
√ 添加多人網絡或者彆的增強模塊來擴展遊戲
基於地理位置虛擬現實遊戲已經有幾年瞭,"口袋妖怪GO”的發布是遊戲史上的變遷,催化市場發展,引導瞭大波的需求。是時候讓新手和有經驗的人把他們的點子投入增強現實的移動端遊戲,滿足市場需求瞭。如果你想使用*新的Unity 5 toolkit來開發遊戲,那這本書就是為你準備的。這種類型的基於地理位置的增強現實遊戲給我們介紹瞭一個新平颱同時帶來技術上的挑戰,但是這本書會簡化這些難題,告訴你怎麼*大程度吸引遊戲受眾。它能帶你體驗塑造這種遊戲來錶現技術概念的這段旅程:GIS的基本原理,移動設備衛星定位,映射,Unity中的地圖映射,移動拍照設備,Unity中攝影映射,訪問基於位置的服務,和其他有用的建議。這種技術物質探討瞭對於長遠開發多玩傢版本遊戲來說哪些是必要的。*後,書會教你故障排除技術以防你遇到麻煩需要一些幫助。
Micheal Lanham 是為petroWEB工作的一位解決方案架構師,目前居住在加拿大阿爾伯塔省的卡爾加裏(Calgary, Alberta)。他目前的職責之一是開發具有先進空間搜索能力的綜閤GIS應用。他曾擔任專業和業餘遊戲開發人員,製作桌麵和手機遊戲超過15年。2007年,Micheal接觸到Unity 3D,從此以後就一直是Unity 3D狂熱的粉絲和開發者。
龔震宇是一位資深的遊戲開發工程工程師,有十餘年從事遊戲開發的工作經驗。曾在富士通從事編程工作,之後一直在神遊科技從事遊戲開發工作。周剋忠是一位榖歌專業AR開發工程師,長期從事增強現實相關研究和實踐。
這本書非常適閤沒有任何 AR 開發經驗,甚至沒有遊戲開發經驗的開發者,從零開始學習增強現實的開發。文章的內容從安裝 Unity 引擎和配置相關環境開始,進而介紹 AR 及遊戲開發中的一些基本概念等,整個講解過程循循善誘,使初學者不用擔心錯過任何一個細節而止步不前。
學習軟件開發的方式就是學習案例,並親自動手實現。如果像傳統的教科書過多地介紹概念和理論,往往讓讀者讀完之後仍不能獨自完成一個完整的作品。這本書介紹瞭目前火爆的一款 AR 遊戲 Pokemon Go,並將其關鍵技術一一拆解,章節順序遵循遊戲開發的標準流程,使讀者在學習相關的技術以外也能瞭解到遊戲開發的工作流程。
AR 被很多人認為是一種革命性的技術,因為它並不是一個遊戲專用的技術。恰恰相反,AR 被認為在未來可能會影響到每個人日常生活的方方方麵。比如 AR 眼鏡可以在現實世界的背景上增加虛擬的畫麵。當你在商場購物時,戴上它你可以看到每一樣商品的詳細信息。當你需要導航時,再不用擔心看不懂地圖,它可以在現實世界裏疊加虛擬的導航路綫,即使是路癡也隻要跟著箭頭的方嚮行走即可。AR 技術還可以應用在很多領域,這裏不再一一闡述。
這本書介紹的核心工具是 Unity 引擎。就像 AR 技術一樣,Unity 已經不僅僅是一款遊戲引擎。在遊戲行業以外,它已經被應用在 AR、VR、影視、建築可視化(BIM),甚至汽車製造等領域。Unity 是全球應用廣泛的 VR、AR 開發平颱,目前全球大部分的 VR、AR 內容都是通過 Unity 開發的。就 AR 來說,具體的技術還分很多種,比如 AR Kit、AR Core、Vuforia、Hololens、MagicLeap 等。Unity 是目前官方支持 AR 技術的開發平颱。可以說 Unity 是目前學習 AR 技術、開發 AR 産品的有效工具。
就像其他所有的新興技術一樣,AR 處於發展的初期,技術和硬件上還存在著些許不足。但是由於它擁有的巨大潛力,我相信這些睏難都會很快被剋服。希望有更多的開發者加入增強現實的世界,讓增強現實更快進入現實。
張黎明 Unity 大中華區技術總監
2018 年 3 月 5 日
第 1 章 準備開始 1
現實世界冒險遊戲 1
基於位置 2
增強現實 3
冒險遊戲 3
使用 Unity 進行移動開發 4
下載和安裝 Unity 5
設置 Android 開發環境 6
設置 iOS 開發環境 10
Unity 入門 10
創建遊戲項目 10
生成和部署遊戲 14
總結 17
第 2 章 映射玩傢位置 18
GIS 基礎知識 18
映射 19
GPS 基礎知識 22
Google 地圖 23
添加地圖 25
設置服務 37
總結 42
第 3 章 製作遊戲角色 43
導入標準 Unity 資源 44
添加一個角色 45
替換攝像機 46
跨平颱輸入 48
修正輸入 49
替換角色 66
總結 68
第 4 章 生成獵物 69
創建一個新的 “怪物服務” 70
理解地圖映射的距離 72
GPS 精度 78
檢查怪物 81
投影坐標到 3D 空間 84
在地圖上添加怪物 85
在 UI 中追蹤怪物 93
總結 96
第 5 章 在 AR 中捕捉獵物 97
場景管理 98
引入遊戲管理器 100
加載場景 102
更新觸控輸入 103
碰撞體和剛體物理 106
構建 AR 捕捉場景 110
使用相機作為場景背景 112
添加捕捉球 116
投擲球 117
檢查碰撞 121
粒子效果反饋 125
捕獲怪物 126
總結 130
第 6 章 保存獵物 132
庫存(Inventory)係統 133
保存遊戲狀態 135
搭建服務 137
代碼審查 139
怪物的 CRUD (創建,讀取,更新,刪除)操作 144
更新 Catch 場景 146
製作 Inventory(庫存)場景 152
添加菜單按鈕 158
閤成遊戲 160
移動開發中的痛 161
總結 162
第 7 章 創建 AR 世界 163
迴到地圖 164
單件模式 165
Google Place API 入門 167
使用 JSON 169
配置 Google Place API 服務 172
産生標記 173
優化搜索 176
總結 180
第 8 章 與 AR 世界交互 181
Places 場景 182
用榖歌街景作為背景 184
Google Place API 照片幻燈片 186
增加賣齣的 UI 交互 192
賣齣的遊戲機製 198
更新數據庫 200
把片段拼接起來 204
總結 208
第 9 章 完成遊戲 209
未完成的開發任務 209
缺少的開發技能 214
清理資源 216
發行遊戲 219
開發基於位置遊戲的一些問題 220
基於位置的多人遊戲 221
使用 Firebase 作為多人開發平颱 225
其他一些基於位置的點子 229
這個種類的未來 230
總結 231
第 10 章 疑難解答 232
Console 窗口 232
編譯錯誤和警告 234
調試 235
遠程調試 237
高級調試 239
記錄日誌 240
CUDLR 244
Unity Analytics 246
每章的問題和解決方案 249
總結 251
譯者序1
作為一名程序員在遊戲圈工作瞭十幾年,這是第一次參與翻譯工作,因為這本書的書名引起瞭我的興趣:《Augmented Reality GameDevelopment》,“Augmented Reality(AR)” 這個詞一下子就映入眼簾。最早認識到這個詞應該是在 2011 年任天堂公司的 3DS 上。這颱掌機自帶瞭一款 AR 遊戲,通過 3D 液晶屏可以看到各種動畫形象躍然於桌子或者地麵上,效果非常震撼。但是從那以後,AR 從我的視野中淡齣瞭,直到去年 Pokemon GO 的突然走紅。在這之後,國內也湧現齣瞭許多手機端的 AR 遊戲和應用,甚至過年時都流行起瞭 AR“搶紅包”。而隨著榖歌 Tango 手機和微軟 HoloLens 眼鏡等設備的推齣,AR 的應用必然會更加廣泛。當然,我最關心的還是能否有更好的 AR 遊戲齣現。本書詳細介紹瞭一個簡單的 AR 遊戲的開發過程,非常適閤想要一窺 AR 開發之究竟的讀者。本人也是帶著這樣的心態來翻譯的,在翻譯的過程中學習和驗證,獲益匪淺。希望讀者也能從中找到樂趣,對於翻譯中的一些瑕疵請多多包涵。
感謝翻譯閤作者 Kai,感謝編輯的辛勤校對。另外獻給我的寶貝女兒和在我翻譯期間輔導女兒學習的妻子,你們給瞭我莫大的幫助和動力。
——龔震宇
譯者序2
因為一個很偶然的機會,本來已經離開遊戲圈,走嚮萬惡金融界的我,又迴到瞭遊戲相關的行業,從事 Google AR和 VR 技術在亞太國傢的推廣。恰好以前在 EA 的同事沙鷹在朋友圈牽綫,就決定參與翻譯這本書。公司有規定,不論在哪裏發錶觀點,都必須錶明我與 Google 的雇傭關係,這樣讀者可以假設我的觀點帶有偏見,請酌情考慮。
作為一個遊戲人和鐵杆玩傢,我覺得,一個遊戲最重要的還是得好玩。其次纔是賺不賺錢,有沒有獨特的美術風格,復雜的畫麵渲染什麼的。最典型的例子就是任天堂的遊戲,過去十幾年分辨率都是主機裏麵最低的,可它的遊戲就是那麼好玩。我一直以來都對任天堂緻以最高的敬意,所以能夠和震宇一起翻譯這本書,我很歡樂。
遊戲開發者一直都在探索新的人機交互,任天堂在這方麵做齣過很多嘗試,比如很早就製作過 VR 頭盔。這在 AR 領域,精靈寶可夢 GO 也實現瞭前所未有的成功。這本書從精靈寶可夢 GO 的功能齣發,講解怎麼使用Unity,製作基於位置並利用地圖,街景以及地點網絡服務的 AR 遊戲,對開發者來說是個很好的 AR 遊戲入門教材。
那麼究竟什麼纔是 AR。這個問題還沒有確定的答案,世界上的開發者都在探索 AR 是什麼,可以做什麼。維基百科上有一個觀點,你想象一個一維的坐標軸,左邊無窮遠代錶完全真實,右邊無窮遠代錶完全虛擬。那麼 AR 就在坐標軸的左半邊,代錶負數的那個部分;相對的,VR 就在坐標軸右邊,代錶正數的部分。可見 AR 的定義不是絕對的,有很大的一段區域都可以叫做 AR。中間一段區間也叫做 XR 混閤現實,然而這些定義有著非常模糊的邊界。
實現 AR 有很多種核心技術,GPS,StreetView, SLAM,計算機圖形,計算機視覺,圖像處理,基於大數據的機器學習等等,都有切實的應用例子。本書講解的基於位置的應用,微軟的 HoloLens,Google 的 Tango,它們都屬於 AR 的應用。任天堂的 3DS 裏麵就有基於卡片的 AR 玩法,那也是一種早期 AR;類似的,目前的技術已經可以做到基於卡片的 AR 不需要一直盯著卡片也能實現設備定位。
從今年的行業動態來看,接下來基於計算機視覺的 AR 將會慢慢走齣實驗室進入消費者領域,美國四大科技雇主公司 F.L.A.G. 裏麵有三個都在做:4 月份的時候 Facebook 推齣瞭 AR Studio,5 月份 Google 在 I/O 宣布基於 Tango 的 WorldSense 和 VPS(視覺定位服務),6 月份蘋果宣布瞭 iOS 11 裏麵的 ARKit。根據目前的信息來看,Google 的 Tango 能獲得的對現實世界的描述信息最多,因為它硬件上使用瞭專門的深度傳感器和魚眼鏡頭。相比之下蘋果的 ARKit 和 Facebook 的 AR Studio 隻使用瞭一個或兩個 RGB 攝像頭。當然,這隻是我的推測,畢竟ARKit 和 AR Studio 都還沒有正式對外公開,我還沒有看過它們的文檔。說不定蘋果和 Facebook 會擁有怎麼樣的黑科技呢!科技的發展早已不是綫性的;十幾年前在我上大學那會兒,人工智能教科書都說超級計算機也絕對沒辦法下圍棋戰勝人類;這不,5 月份 Alpha Go 單機 4 TPU 就挑戰瞭人類冠軍柯傑。
最近幾年國內創業氣息濃重,投資氛圍也活躍,連習大大都有鼓勵大傢創業。希望大傢緊跟時代,在 AR 這股風剛剛開始颳的時候就讓自己站在風口,迎接被風吹起的感覺。
最後感謝翻譯同伴震宇,感謝沙鷹牽綫帶來這本書,感謝編輯的提示和幫助。書中有一些句子為瞭通順,采取瞭意譯而不是直譯,實屬中英文的用詞習慣差彆太大。希望大傢不要介意。
——周剋忠 Kai Google AR/VR 技術推廣工程師
2017 年 6 月 26 日新加坡
前言
在 2016 年初,世界上大多數人對增強現實和基於位置的遊戲知之甚少。當然,這一切都隨著那一年 Pokemon Go的發布而改變瞭。一夜之間,這種遊戲類型就不容置疑地成為瞭遊戲開發的發展趨勢。可能你已經玩過 Pokemon Go,而且你閱讀這本書正因為你對 AR 和基於位置的遊戲類型産生瞭興趣。
在本書中,我們將詳細探討創建像 Pokemon Go 這樣的基於位置的 AR 遊戲的各個方麵。基於位置的 AR 遊戲是代價昂貴的,需要為遊戲中的一切建立很多服務,從地圖映射到生成怪物。然而,我們開發的遊戲將是零成本的,使用的都是可以免費獲得的服務。雖然由於一些許可限製,這可能不是你可以用於商業發布的東西,但是一定能介紹給你大部分概念。而且整個過程中,你還將學習如何使用一個偉大的工具 Unity。另外還會嚮你介紹遊戲開發的許多其他概念。
在本書中,我們將詳細探討創建像 Pokemon Go 這樣的基於位置的 AR 遊戲的各個方麵。基於位置的 AR 遊戲是代價昂貴的,需要為遊戲中的一切建立很多服務,從地圖映射到生成怪物。然而,我們開發的遊戲將是零成本的,使用的都是可以免費獲得的服務。雖然由於一些許可限製,這可能不是你可以用於商業發布的東西,但是一定能介紹給你大部分概念。而且整個過程中,你還將學習如何使用一個偉大的工具 Unity。另外還會嚮你介紹遊戲開發的許多其他概念。
本書涵蓋內容
第 1 章,準備開始,介紹瞭構成基於位置的 AR 遊戲類型和我們的虛構遊戲 Foody Go 的概念。隨後是下載所有必需軟件,並使用 Unity 設置移動開發環境的所有步驟。
第 2 章,映射玩傢位置,首先介紹 GIS、GPS 和地圖映射的基本概念。然後說明如何應用這些概念,來生成實時地圖並繪製玩傢在遊戲中的位置。
第 3 章,製作遊戲角色,在前一章的基礎構建,把我們簡單的位置標識轉換成一個移動的動畫角色。這樣,玩傢在攜帶著移動設備走動時,可以看到他們的遊戲角色在地圖上四處走動。
第 4 章,生成獵物,解釋瞭 Foody Go 的假設背景是關於捕捉實驗怪物。在本章中,我們學習瞭如何在玩傢的周圍生成怪物到地圖上。
第 5 章,在 AR 中捕捉獵物,內容更加密集:通過訪問設備相機引入遊戲的集成 AR 部分;引入用於投擲球的物理;追蹤玩傢的劃動輸入;使用瞭生物的反應;並且使用新的遊戲場景。
第 6 章,保存獵物,緻力於開發玩傢的裝備包,用於保存抓獲的所有 Foody 生物,以及其他有用的道具。在這裏,我們讓讀者對於添加永久的存儲和添加一個簡單的庫存場景有大緻的瞭解。
第 7 章,創建 AR 世界,基於一個實時的數據服務,在玩傢周圍添加興趣點。
第 8 章,與 AR 世界交互,讓玩傢與興趣點進行互動。在我們這個簡單的遊戲中,玩傢將能夠齣售他們捕獲的怪物。
第 9 章,完成遊戲,告訴讀者如何完成遊戲,或者更好地編寫自己的基於位置的 AR 遊戲。為瞭本書,我們將隻開發 Foody Go 這個示例遊戲。
第 10 章,疑難解答,涵蓋瞭一些故障排除建議和技巧,以剋服這些開發障礙。與所有的軟件開發練習一樣,都可能會遇到問題。
閱讀前的準備
為瞭跟著本書的內容練習,你至少需要一颱能夠運行 Unity 5.4+ 的計算機,以及一部可以運行 Unity 遊戲並配備 GPS 的 iOS 或 Android 設備。
更多關於 Unity 的係統需求請參考:https://unity3d.com/unity/system-requirements
本書的目標讀者
本書適用於任何有興趣開發自己的 Pokemon Go,基於位置的 AR 遊戲的讀者。雖然本書假定你以前沒有遊戲開發技巧或 Unity 開發經驗,但你需要對 C# 或類似的(C、C++、Java 或 JavaScript)語言有基本瞭解。
我一直對遊戲開發抱有濃厚的興趣,特彆是那些能夠打破屏幕界限,將虛擬世界與現實空間融為一體的創新形式。看到《AR遊戲:基於Unity 5的增強現實開發》這本書,我感到一股強烈的吸引力。Unity 5,這個曾經是許多經典遊戲開發的基石,與AR技術的結閤,預示著一條充滿可能性的創作道路。我期望這本書能夠為我揭示AR遊戲開發的奧秘,不僅僅是技術層麵的操作,更重要的是其背後的設計哲學和實現邏輯。我希望它能詳細介紹如何在Unity 5環境中,利用其強大的引擎能力,構建齣逼真且富有互動性的AR遊戲體驗。這包括但不限於如何進行精準的空間錨定,如何處理光照和陰影,如何實現自然流暢的物體交互,以及如何設計齣能夠引導玩傢在現實環境中探索和互動的遊戲機製。我期待書中能提供一些前沿的AR技術應用示例,比如如何結閤SLAM技術實現更高級的環境感知,或者如何利用AI為AR遊戲中的角色賦予更智能的行為。這本書的齣現,讓我看到瞭將奇思妙想轉化為觸手可及的AR遊戲世界的希望,它將是我在AR遊戲開發道路上的一盞明燈。
評分作為一名對編程和遊戲設計都充滿熱情的學生,我一直在尋找能夠將我的興趣和技能結閤起來的項目。當我偶然翻到《AR遊戲:基於Unity 5的增強現實開發》這本書時,我感覺自己找到瞭一個完美的切入點。Unity 5這個名字雖然對我來說並不陌生,但它在AR遊戲開發方麵的應用是我一直想深入瞭解的。我設想這本書會從AR技術的基本原理講起,比如如何捕捉現實世界的影像,如何識彆和追蹤平麵,如何將虛擬物體疊加到真實場景中。然後,它會逐步深入到Unity 5的具體操作,例如如何在Unity中創建AR項目,如何導入和管理3D模型,如何編寫腳本來實現AR物體的交互和動畫。我特彆希望書中能夠提供一些完整的AR遊戲開發案例,從構思到實現,一步步地指導我完成一個具有實際可玩性的AR遊戲。這樣,我不僅能夠學習到AR開發的技術,還能在實踐中鍛煉我的遊戲設計能力和編程邏輯。這本書對我來說,不僅是一本技術書籍,更是一份寶貴的學習資源,它將幫助我把對AR遊戲的夢想變成現實,開啓我的遊戲開發之旅。
評分作為一名在遊戲開發領域摸爬滾打多年的從業者,我對各種技術和開發工具都抱著審慎而開放的態度。當我在書店的角落裏發現這本《AR遊戲:基於Unity 5的增強現實開發》時,我immediately被它所吸引。Unity 5這個版本號勾起瞭我不少迴憶,雖然現在Unity已經更新到更高的版本,但Unity 5仍然是一個非常成熟且功能強大的平颱,學習其中的AR開發技術,對於理解AR發展脈絡以及掌握核心原理依然意義重大。我尤其關注的是書中對於AR開發實際應用的講解。我希望它不僅僅是停留在理論層麵,而是能夠提供大量實用的代碼示例、項目模闆,甚至是完整AR遊戲開發的案例分析。比如,如何利用Unity的內置工具實現目標識彆、平麵檢測、圖像追蹤等AR核心功能,如何將3D模型、動畫、粒子特效等元素無縫地融入到真實環境中,以及如何設計引人入勝的AR遊戲玩法,使其在虛擬與現實的交互中展現齣獨特的魅力。我期待書中能夠提供一些關於AR性能優化和跨平颱部署的寶貴建議,這對於將AR遊戲推嚮市場至關重要。這本書的價值在於它能否為我這樣的開發者提供一條快速上手AR遊戲開發的捷徑,並為我的項目開發提供堅實的技術支撐和靈感啓迪。
評分這本書的封麵上赫然印著“AR遊戲:基於Unity 5的增強現實開發”,看到這個標題,我的內心是無比期待的。我一直對AR技術充滿好奇,總想著有一天能親手製作一個屬於自己的AR應用,或者更進一步,開發一款刺激有趣的AR遊戲。Unity作為業界領先的遊戲開發引擎,其強大的功能和靈活的擴展性早已讓我心神嚮往。而本書將Unity 5與AR開發相結閤,無疑是一條通往AR遊戲開發世界的絕佳路徑。我設想,這本書一定會像一位經驗豐富的嚮導,帶領我穿越Unity的復雜界麵,領略AR技術的神奇之處。我期待著它能夠從最基礎的概念講起,比如AR是如何工作的,ARKit和ARCore的優勢與區彆,以及如何在Unity中搭建AR項目的基本框架。更重要的是,我希望它能深入剖析AR遊戲開發的獨特挑戰,比如如何設計交互,如何處理現實與虛擬的融閤,以及如何優化性能以保證流暢的用戶體驗。我相信,通過這本書的學習,我能夠掌握從零開始構建一個AR遊戲所需的核心技能,甚至能觸及到一些進階的AR特效和玩法設計。這本書對我而言,不僅僅是一本技術手冊,更是一扇通往無限創意可能的大門,它點燃瞭我內心深處對技術探索和創造的熱情。
評分說實話,我是一名AR技術愛好者,對新鮮事物總是充滿探索欲。我之前嘗試過一些AR開發相關的教程,但總感覺零散且不夠係統。這次看到《AR遊戲:基於Unity 5的增強現實開發》,我眼前一亮。Unity 5雖然不是最新的版本,但它的穩定性和強大的生態係統仍然是AR開發不可忽視的基礎。我希望這本書能夠像一位循循善誘的老師,把我從AR的門外漢,一步一步地引導進AR遊戲開發的世界。我渴望學習到AR的基本概念,比如什麼是增強現實,它與虛擬現實的區彆,以及AR技術是如何融入到我們的日常生活中。我更期待書中能夠詳細介紹如何在Unity 5中進行AR項目的搭建,如何導入和處理3D模型,如何實現AR模型的交互功能,以及如何為AR遊戲添加音效和視覺特效。當然,我最希望的是它能給我一些關於AR遊戲創意和設計的思路。市麵上的AR遊戲雖然不少,但真正能夠讓人眼前一亮的還不多。我希望這本書能啓發我設計齣一些新穎獨特的AR遊戲玩法,讓玩傢在現實世界中也能體驗到沉浸式的遊戲樂趣。這本書對我來說,不僅僅是學習技術,更是打開瞭我對未來遊戲形態的想象空間。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有