本書將帶領(lǐng)讀者學(xué)習(xí)如何使用Unity進行虛擬現(xiàn)實開發(fā)。從基礎(chǔ)知識到實踐應(yīng)用,讀者將逐步掌握如何創(chuàng)建引人入勝的VR體驗,為自由開發(fā)VR應(yīng)用打下堅實基礎(chǔ)。
本書分為兩部分共11章。第一部分(第1章和第2章)包含基礎(chǔ)知識和環(huán)境準(zhǔn)備,幫助讀者搭建VR開發(fā)的環(huán)境。第二部分(第3章和第11章)進入實戰(zhàn)內(nèi)容,系統(tǒng)講解Unity VR開發(fā)中的關(guān)鍵技術(shù),包括主體設(shè)置、控制接收、主體運動及震動反饋的實現(xiàn)。在每個實戰(zhàn)步驟中都會配有詳細的知識講解和配套操作演示視頻,幫助讀者理論結(jié)合實踐,循序漸進掌握每個VR細節(jié)的實現(xiàn)。
本書適合初學(xué)者和有一定編程經(jīng)驗的開發(fā)者,并可作為高等院校和培訓(xùn)機構(gòu)相關(guān)專業(yè)的教學(xué)參考書。通過實際項目經(jīng)驗,幫助讀者深入了解VR開發(fā)的基本概念與技術(shù)。不僅提供完整的學(xué)習(xí)路徑,還讓讀者快速上手VR開發(fā),踏上挑戰(zhàn)與機遇并存的虛擬現(xiàn)實之旅。
本書結(jié)合作者在VR開發(fā)領(lǐng)域的實際經(jīng)驗,從項目環(huán)境設(shè)置到VR互動的全過程,系統(tǒng)地講解了如何構(gòu)建一個完整的VR項目。通過實際案例的引導(dǎo),讀者將掌握VR開發(fā)的基本理論和技術(shù),快速進入實戰(zhàn)狀態(tài),打下堅實的開發(fā)基礎(chǔ)。
易學(xué)易用 本書以實戰(zhàn)項目為引領(lǐng),通過詳細的步驟和代碼示例,讓初學(xué)者能夠快速上手VR開發(fā)。同時,針對有一定基礎(chǔ)的讀者,也提供了深入的技術(shù)解析,幫助他們在VR開發(fā)上進一步提升。
前后銜接 本書從VR開發(fā)的基礎(chǔ)知識開始,循序漸進地引導(dǎo)讀者進入更高階的技術(shù)應(yīng)用,確保知識體系和開發(fā)思路的連貫性。
深入細節(jié) 本書注重細節(jié)與實用性,針對VR開發(fā)中常見的挑戰(zhàn)和難點,提供了大量的解決方案與優(yōu)化技巧。
虛擬現(xiàn)實(Virtual Reality,VR)技術(shù)作為一種模擬現(xiàn)實場景的計算機生成技術(shù),自誕生之初便引發(fā)了世人的無限遐想。它利用計算機圖形技術(shù)、人工智能和傳感器等多種技術(shù)手段,為用戶提供身臨其境的感官體驗。從最初的構(gòu)想,到如今在各個領(lǐng)域的廣泛應(yīng)用,VR技術(shù)經(jīng)歷了一個漫長且充滿挑戰(zhàn)的發(fā)展過程。
早在20世紀(jì)60年代,美國空軍便開始嘗試將簡單的VR技術(shù)應(yīng)用于飛行模擬,然而,受限于當(dāng)時的硬件條件和高昂成本,VR技術(shù)的推廣步伐緩慢。進入20世紀(jì)80年代,隨著計算機圖形學(xué)和圖形處理技術(shù)的飛速發(fā)展,VR技術(shù)終于迎來了新的生機。到了20世紀(jì)90年代,VR技術(shù)開始進入娛樂和游戲領(lǐng)域,但市場尚不成熟,發(fā)展仍顯艱難。
進入21世紀(jì),隨著計算機處理能力的不斷提高和硬件成本的降低,VR技術(shù)逐漸進入普及期。特別是在娛樂領(lǐng)域,VR技術(shù)為游戲、電影、演唱會等文化活動帶來了革命性的變革。如今,VR技術(shù)已不局限于娛樂領(lǐng)域,還被廣泛應(yīng)用于教育、醫(yī)療、工業(yè)設(shè)計、旅游等行業(yè),展現(xiàn)出巨大的行業(yè)潛力。
尤其在娛樂領(lǐng)域,VR技術(shù)為用戶帶來了前所未有的沉浸式體驗。VR游戲讓玩家仿佛置身于一個全新的虛擬世界,與其他玩家互動,享受更為真實、刺激的游戲體驗。同時,VR電影、虛擬演唱會等也為觀眾提供了身臨其境的視聽盛宴,打破了傳統(tǒng)娛樂方式的界限。
在筆者長達十年的VR開發(fā)學(xué)習(xí)和研究歷程中不斷探索這一領(lǐng)域的奧秘,親身經(jīng)歷了VR技術(shù)的飛速發(fā)展與變革。在如今眾多各有側(cè)重的VR開發(fā)框架和平臺中,本書選擇Unity作為主要開發(fā)平臺,這是基于其對VR開發(fā)的高度支持及其強大的跨平臺特性做出的判斷。
Unity作為一個功能強大、易于上手的開發(fā)引擎,為VR開發(fā)者提供了豐富的工具和資源。它不僅支持主流的VR設(shè)備,例如Oculus Rift、HTC Vive和Gear VR等,還具備高度的可擴展性和靈活性。這使開發(fā)者在開發(fā)過程中能夠更加專注于內(nèi)容的創(chuàng)造和交互體驗的優(yōu)化,而非煩瑣的技術(shù)細節(jié)。
同時本書盡可能縮短不涉及動手的理論部分,以實戰(zhàn)中穿插相關(guān)知識點為主的形式向讀者介紹詳細的開發(fā)過程。VR開發(fā)應(yīng)以實戰(zhàn)為主,這是因為VR技術(shù)的核心在于為用戶提供沉浸式體驗,而這往往需要通過實際操作和反復(fù)試驗來實現(xiàn)。實戰(zhàn)開發(fā)能夠讓我們更直觀地了解用戶需求,發(fā)現(xiàn)并解決技術(shù)難題,進而提升項目的質(zhì)量和用戶體驗。
此外,雖然篇幅有限,本書只能選擇最適合的引擎介紹VR開發(fā)的過程,但是本書涉及的VR開發(fā)中的思想和方法具有廣泛的適用性。無論是針對哪種平臺或設(shè)備,優(yōu)秀的開發(fā)思想和方法都是相通的,例如注重用戶體驗、優(yōu)化性能、合理設(shè)計交互方式等原則,在所有的VR項目中都是至關(guān)重要的。這些方法不僅有助于提高開發(fā)效率,還能確保項目在不同平臺上的表現(xiàn)一致。通過編寫本書,筆者總結(jié)了大量開發(fā)場景的實際經(jīng)驗,也查閱了大量的官方和有參考價值的開源項目文檔,這使筆者也在多個維度上有了更深層的提升,收獲良多。
本書主要內(nèi)容
第1章VR游戲開發(fā)引擎的選擇,主要探討主流的VR游戲開發(fā)引擎,分析各自的優(yōu)缺點,并提供選擇Unity作為VR開發(fā)引擎的理由,幫助讀者理解為何Unity是當(dāng)前VR游戲開發(fā)的首選平臺。
第2章VR項目環(huán)境準(zhǔn)備,主要介紹如何搭建VR開發(fā)環(huán)境,包括軟件安裝、硬件配置及Unity項目的初始化,為后續(xù)的開發(fā)工作奠定堅實的基礎(chǔ)。
第3章基本VR場景設(shè)置,主要介紹如何在Unity中創(chuàng)建和設(shè)置基本的VR場景,包括XR Rig,以及手柄控制器對象的導(dǎo)入和如何呈現(xiàn)手部模型。
第4章輸入設(shè)置,主要講解VR游戲中的輸入機制,包括如何捕捉控制器的輸入信號并將輸入信號與手部動畫參數(shù)關(guān)聯(lián)以實現(xiàn)控制器控制手部動作。
第5章主體運動,主要介紹角色或玩家在VR環(huán)境中的移動方式,包括連續(xù)移動、傳送移動、轉(zhuǎn)向運動等,確保玩家能夠自然地在虛擬空間中移動。
第6章物體互動,主要介紹如何在VR游戲中實現(xiàn)物體的直接抓取、遠程抓取、互動射線的修飾等,增強游戲的真實感和互動性。
第7章UI互動,主要介紹VR游戲中的用戶界面設(shè)計,包括菜單、按鈕、滑塊等元素的創(chuàng)建和交互,豐富用戶體驗。
第8章震動反饋,主要介紹如何在VR游戲中添加震動反饋,通過觸覺增強玩家的沉浸感。
第9章自定義手勢動畫,主要介紹如何在Unity中創(chuàng)建和應(yīng)用自定義的手勢動畫,豐富玩家的表達方式。
第10章暈動優(yōu)化,主要針對VR游戲常見的暈動問題,介紹多種優(yōu)化策略,以減少玩家的不適感,提升游戲體驗。
第11章項目打包與發(fā)布,主要介紹如何對完成的VR游戲項目進行打包,以及發(fā)布到各大VR平臺的流程,使游戲能夠面向廣大用戶。
閱讀建議
本書是一本基礎(chǔ)入門、項目實戰(zhàn)及原理剖析三位一體的技術(shù)教程。全書以構(gòu)建一個基本VR項目作為實戰(zhàn)主體,在循序漸進的項目實戰(zhàn)操作過程中適時地介紹相應(yīng)的知識點和原理,使讀者能夠方便地在實踐的過程中體會并吸收VR開發(fā)知識,并逐步形成對VR開發(fā)流程框架的認(rèn)識,是一種高度知行合一的學(xué)習(xí)方法。
操作介紹包括詳細的項目開發(fā)步驟配合圖片標(biāo)示,為了讓讀者深入了解開發(fā)細節(jié),每個代碼片段都有詳細的注釋標(biāo)注和對應(yīng)的操作說明。本書的基礎(chǔ)知識、項目實戰(zhàn)及原理剖析部分均提供了完整可運行的代碼示例,將涉及的項目源代碼開源到線上,并配有相應(yīng)的視頻教程,這樣可以幫助讀者更好地自學(xué)全方位的技術(shù)體系。
建議沒有Unity VR實際開發(fā)經(jīng)驗的讀者從頭開始按照順序詳細閱讀每章節(jié)。章節(jié)劃分按照由淺入深,由整體概述到細節(jié)解析的方式對VR開發(fā)的技術(shù)發(fā)展、環(huán)境構(gòu)建,以及具體的各個主要功能的實現(xiàn)進行介紹,嚴(yán)格按照順序閱讀可以幫助讀者不會出現(xiàn)知識斷層。
有Unity VR開發(fā)經(jīng)驗的讀者可以快速地瀏覽第1章,從第2章開始進入側(cè)重功能實現(xiàn)的實戰(zhàn)內(nèi)容。
第2~4章會介紹從0~1的項目搭建過程,包括環(huán)境的搭建、基本VR場景的構(gòu)建和控制器設(shè)置等。由于這部分內(nèi)容是后續(xù)項目操作的基礎(chǔ),并且為了讓讀者深入理解一個Unity VR項目的各項設(shè)定,特意選擇了自主構(gòu)建控制器對象而非傻瓜式地直接引用現(xiàn)成對象,這樣可以幫助讀者深刻理解Unity VR項目構(gòu)建中的基礎(chǔ)部分。
第5~7章介紹如何在VR項目中實現(xiàn)運動和互動,包括XR Rig的傳送移動、連續(xù)移動,與物體對象的各種形式的互動及UI互動。這一部分內(nèi)容涉及的操作較多,內(nèi)容豐富,需要根據(jù)操作指導(dǎo)循序漸進
地進行學(xué)習(xí),體會每步操作背后的原理和邏輯。對于較為復(fù)雜的功能,本書采用增量開發(fā)的形式,從基礎(chǔ)版本到針對每個問題點的優(yōu)化,使讀者能夠在細微處扎實掌握相關(guān)效果的實現(xiàn)和優(yōu)化思路,深化體驗,強化吸收。
第8~10章介紹加強沉浸化體驗的技術(shù),包括增加VR互動時的震動反饋、自定義手勢和針對暈動的優(yōu)化。由于這部分內(nèi)容是在互動等效果實現(xiàn)后的增強和優(yōu)化,所以建議讀者在徹底完成第7章之前的操作后再來閱讀第8~10章的內(nèi)容,在進行優(yōu)化操作的過程中,在大腦中與未作優(yōu)化時的狀態(tài)做類比,這樣可以快速抓住并理解這些優(yōu)化技術(shù)所針對的問題和原理所在。
第11章為最終項目的打包和發(fā)布介紹。本章節(jié)涉及的設(shè)置項較多,并且這些打包和發(fā)布方法伴隨平臺插件的更新可能有所變化。在學(xué)習(xí)過程中一定要注意理論結(jié)合實際,理解這些設(shè)置項背后的意義,不拘泥于完全一致,一旦發(fā)現(xiàn)實際的選項與書本上存在偏差,就可以在理解的基礎(chǔ)上找到新版的設(shè)置方式,或是查閱相應(yīng)平臺的官方資料,獲得最新的打包方法。
資源下載提示
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
視頻等資源: 掃描封底的文泉云盤防盜碼,再掃描書中相應(yīng)章節(jié)的二維碼,可以在線學(xué)習(xí)。
致謝
感謝我的家人對我抽時間寫作本書的理解。我的兩個女兒,希望這次寫書的經(jīng)歷能夠激勵你們耐心地追求自己的目標(biāo)。感謝我的妻子王曉霞女士對我的支持,你照顧好了孩子們的生活,讓我可以放心工作到深夜。非常感謝趙佳霓編輯的指導(dǎo),得以讓此書有機會面世,與讀者見面。
人生有涯而學(xué)海無涯,VR技術(shù)發(fā)展迅速,內(nèi)容龐雜,寫本書也屬于以有涯渡無涯了,書中難免存在不妥之處,請讀者提出寶貴意見。
徐暘泱2025年4月
徐暘泱,資深軟件工程師和企業(yè)技術(shù)管理者,熱衷于終身學(xué)習(xí),畢業(yè)于北京化工大學(xué)。擁有超過15年的金融科技領(lǐng)域開發(fā)經(jīng)驗,對VR和相關(guān)技術(shù)的研究與開發(fā)也擁有濃厚的興趣和長期的實踐積累。自O(shè)culus Quest第1代發(fā)布以來,便開始深入研究虛擬現(xiàn)實技術(shù),并通過制作上百個VR開發(fā)教學(xué)視頻,解決平臺觀眾的技術(shù)問題,積累了大量寶貴的一線教學(xué)經(jīng)驗。此外,作者自主研發(fā)了平面圖批量轉(zhuǎn)360全景圖效率工具,并在Steam平臺發(fā)布,進一步展示了在VR工具開發(fā)方面的實踐能力。現(xiàn)階段,作者依然活躍于VR領(lǐng)域,持續(xù)制作具有創(chuàng)意的VR游戲Demo,致力于推動VR技術(shù)的普及與發(fā)展。
第1章VR游戲開發(fā)引擎的選擇
1.1主流VR游戲開發(fā)引擎簡介
1.1.1Unity
1.1.2Unreal Engine
1.1.3CryEngine
1.1.4Cocos Creator
1.2主流VR游戲應(yīng)用市場簡介
1.2.1Oculus Quest
1.2.2Oculus Rift
1.2.3Steam
1.2.4PICO
1.2.5SIDEQUEST
1.3為何選擇Unity作為VR開發(fā)引擎
1.3.1Unity更適合VR開發(fā)入門學(xué)習(xí)
1.3.2不可忽視的其他VR開發(fā)引擎
第2章VR項目環(huán)境準(zhǔn)備
2.1硬件準(zhǔn)備
2.1.1關(guān)于計算機
2.1.2關(guān)于VR頭盔產(chǎn)品
2.2下載Unity
2.2.1安裝Unity Hub
2.2.2安裝合適版本的Unity編輯器
2.2.3獲取Unity編輯器的使用許可證
2.2.4關(guān)于Unity編輯器的版本號
2.2.5Unity項目模板
2.2.6新建Unity項目
2.3認(rèn)識Unity編輯器
2.3.1窗口內(nèi)常用面板介紹
2.3.2窗口布局
2.4VR基本場景構(gòu)建
2.4.1新建場景
2.4.2在默認(rèn)場景中創(chuàng)建地面對象
2.5VR項目設(shè)置
2.5.1連接計算機
2.5.2追蹤頭盔
2.5.3安裝Unity XR開發(fā)工具包
第3章基本VR場景設(shè)置
3.1XR Rig的引入和設(shè)置
3.1.1新建XR Rig對象
3.1.2XR Origin對象的屬性
3.1.3測試和總結(jié)
3.2控制器對象的引入和設(shè)置
3.2.1構(gòu)建控制器對象
3.2.2引入輸入映射文件
3.2.3測試和總結(jié)
3.3手的基本呈現(xiàn)
3.3.1導(dǎo)入手部模型
3.3.2Material和Shader
3.3.3手部模型的動畫組件
3.3.4更換手部模型皮膚
3.3.5測試和總結(jié)
第4章輸入設(shè)置
4.1捕捉控制器輸入
4.1.1第1個自定義腳本
4.1.2獲得控制器按鍵輸入
4.1.3Debug()方法
4.1.4Oculus控制器按鍵
4.1.5測試和總結(jié)
4.2關(guān)聯(lián)控制器輸入與手部動畫
4.2.1實現(xiàn)左手的捏合動作
4.2.2實現(xiàn)左手的握拳動作
4.2.3實現(xiàn)右手的捏合和握拳動作
4.2.4總結(jié)
第5章主體運動
5.1連續(xù)移動
5.1.1連續(xù)移動與傳送移動的比較
5.1.2配置連續(xù)移動
5.1.3避免主體墜落
5.1.4測試和總結(jié)
5.2轉(zhuǎn)向運動
5.2.1VR游戲中常見的轉(zhuǎn)向方式
5.2.2配置平滑轉(zhuǎn)向和分段轉(zhuǎn)向
5.2.3測試和總結(jié)
5.3使Character Controller跟隨XR Rig移動
5.3.1認(rèn)識角色控制器
5.3.2使Character Controller跟隨主體移動
5.3.3測試和總結(jié)
5.4傳送移動時指示射線的呈現(xiàn)
5.4.1認(rèn)識指示射線
5.4.2配置指示射線對象
5.4.3測試和總結(jié)
5.5實現(xiàn)指定區(qū)域內(nèi)的傳送移動
5.5.1配置Teleportation Provider組件
5.5.2兩種傳送移動
5.5.3配置傳送區(qū)域
5.5.4消除按鍵沖突
5.5.5測試和總結(jié)
5.6實現(xiàn)指定目標(biāo)錨點的傳送移動
5.6.1創(chuàng)建錨點
5.6.2創(chuàng)建透明材質(zhì)
5.6.3完善錨點組件配置
5.6.4指定每個錨點的主體移動后朝向
5.6.5測試和總結(jié)
5.7自定義Ray的外觀
5.7.1設(shè)置射線的線性
5.7.2自定義射線落點的樣式
5.7.3測試和總結(jié)
5.8使傳送指示射線只在傳送時出現(xiàn)
5.8.1控制傳送指示射線的顯隱
5.8.2配置自定義腳本組件ActivateTeleportationRay
5.8.3測試和總結(jié)
第6章物體互動
6.1基本互動設(shè)定
6.1.1實現(xiàn)物體互動的兩類組件
6.1.2配置Interactor組件
6.1.3配置可交互對象
6.1.4測試和總結(jié)
6.2抓取物體
6.2.1配置可抓取對象
6.2.2Unity常用快捷鍵
6.2.3GrabInteractable組件屬性設(shè)置
6.2.4測試和總結(jié)
6.3自定義物品抓取位置
6.3.1導(dǎo)入手槍模型資源
6.3.2使手槍模型可交互
6.3.3設(shè)定合適的手槍抓握位置
6.3.4測試和總結(jié)
6.4抓取手槍時實現(xiàn)發(fā)射子彈
6.4.1編寫發(fā)射子彈的功能腳本
6.4.2創(chuàng)建子彈預(yù)制件
6.4.3指定子彈的出現(xiàn)位置
6.4.4關(guān)聯(lián)事件和腳本
6.4.5測試和總結(jié)
6.5解決發(fā)射子彈與傳送移動的按鍵沖突
6.5.1解決按鍵沖突的方法
6.5.2細化傳送移動指示射線的出現(xiàn)條件
6.5.3測試和總結(jié)
6.6如何避免交互器(Interactor)與互動對象的碰撞
6.6.1解決非預(yù)期碰撞的方法
6.6.2配置Layer
6.6.3測試和總結(jié)
6.7修正左手握槍位置
6.7.1創(chuàng)建繼承XR Grab Interactable所有功能的自定義腳本
6.7.2配置Tag
6.7.3追加判斷左右手邏輯
6.7.4快速創(chuàng)建手槍的左手抓握點
6.7.5解決首次握槍錯位的問題
6.7.6測試和總結(jié)
6.8實現(xiàn)動態(tài)抓取物體
6.8.1快速實現(xiàn)動態(tài)抓握
6.8.2自定義腳本實現(xiàn)動態(tài)抓取
6.8.3測試和總結(jié)
6.9遠距離抓取對象
6.9.1創(chuàng)建Ray Interactor對象
6.9.2配置左右手Ray Interactor的Tag
6.9.3測試和總結(jié)
6.10射線的基本美化
6.10.1優(yōu)化指示射線的顯隱
6.10.2優(yōu)化指示射線的粗細和有效距離
6.10.3測試和總結(jié)
6.11解決動態(tài)互動與遠程抓取的沖突問題
6.11.1細分動態(tài)互動與遠程抓取的作用場景
6.11.2測試和總結(jié)
6.12解決不同Interactor交互時的干涉問題
6.12.1認(rèn)識交互層屬性
6.12.2配置交互層
6.12.3測試和總結(jié)
6.13成功抓取可互動對象時不再呈現(xiàn)指示射線
6.13.1新建自定義腳本ActivateGrabRay
6.13.2配置腳本ActivateGrabRay組件的屬性
6.13.3測試和總結(jié)
第7章UI互動
7.1設(shè)置Canvas
7.1.1認(rèn)識Canvas
7.1.2使Canvas進入VR空間
7.1.3測試和總結(jié)
7.2初步實現(xiàn)與UI元素的互動
7.2.1讓Canvas具備VR空間內(nèi)的互動能力
7.2.2修改Event System對象
7.2.3測試和總結(jié)
7.3如何消除傳送移動與UI互動同時發(fā)生的沖突問題
7.3.1修改Activate Teleportation Ray腳本
7.3.2關(guān)聯(lián)公共變量
7.3.3測試和總結(jié)
7.4如何阻止傳送移動的Ray Interactor與UI元素互動
7.5通過下拉列表實現(xiàn)切換轉(zhuǎn)向模式
7.5.1設(shè)置下拉列表
7.5.2編寫控制轉(zhuǎn)向模式的自定義腳本
7.5.3測試和總結(jié)
7.6通過控制器按鈕呼出菜單
7.6.1創(chuàng)建菜單
7.6.2編寫呼出菜單的功能腳本
7.6.3測試和總結(jié)
7.7優(yōu)化Menu
7.7.1默認(rèn)隱藏菜單
7.7.2根據(jù)玩家位置計算菜單出現(xiàn)位置
7.7.3測試和總結(jié)
7.8動態(tài)調(diào)整Menu的展現(xiàn)朝向
7.8.1追加調(diào)整菜單朝向的邏輯
7.8.2測試和總結(jié)
第8章震動反饋
8.1簡單設(shè)置震動反饋
8.1.1認(rèn)識震動反饋
8.1.2快速實現(xiàn)簡單的震動反饋
8.1.3測試和總結(jié)
8.2精細控制震動反饋
8.2.1取消默認(rèn)的震動反饋設(shè)置
8.2.2編寫自定義震動反饋腳本
8.2.3測試和總結(jié)
8.3震動反饋控制腳本泛用化改造
8.3.1功能通用化的改造思路
8.3.2通用化改造震動反饋腳本
8.3.3測試和總結(jié)
第9章自定義手勢動畫
9.1凍結(jié)手勢動畫
9.1.1創(chuàng)建用于存儲手勢的腳本
9.1.2關(guān)聯(lián)所有手指關(guān)節(jié)對象
9.1.3手動調(diào)整握槍手勢
9.1.4創(chuàng)建凍結(jié)手勢動畫的腳本
9.1.5測試和總結(jié)
9.2自定義手部姿勢
9.2.1指定動畫凍結(jié)時的手勢
9.2.2測試和總結(jié)
9.3解決縮放導(dǎo)致的手部模型位置偏移問題
9.3.1改變Hierarchy結(jié)構(gòu)
9.3.2根據(jù)縮放倍數(shù)修改GrabHandPose腳本
9.3.3測試和總結(jié)
9.4放開物體后如何還原手部姿勢
9.4.1在GrabHandPose腳本中補充松手后的邏輯
9.4.2測試和總結(jié)
9.5手勢的自然過渡
9.5.1補充插值法邏輯
9.5.2認(rèn)識Lerp函數(shù)
9.5.3使插值法函數(shù)生效
9.5.4測試和總結(jié)
9.6將動畫過渡邏輯應(yīng)用到左手
9.6.1配置左手模型對象
9.6.2在GrabHandPose腳本中補充左手模型對象
9.6.3測試和總結(jié)
9.7讓左手自動獲得合適的位置和方向
9.7.1單一真相原則
9.7.2創(chuàng)建自定義Unity編輯器菜單
9.7.3認(rèn)識增量開發(fā)
9.7.4測試和總結(jié)
第10章暈動優(yōu)化
10.1隧道效應(yīng)
10.1.1隧道效應(yīng)減緩暈動的原理
10.1.2將隧道效應(yīng)應(yīng)用到VR視野
10.1.3設(shè)置隧道效應(yīng)的效果和作用場景
10.1.4測試和總結(jié)
10.2自由擴展隧道效應(yīng)的應(yīng)用場景
10.2.1設(shè)置新場景下的隧道效應(yīng)
10.2.2測試和總結(jié)
10.3傳送移動中應(yīng)用隧道效應(yīng)
10.3.1設(shè)置傳送移動場景下的隧道效應(yīng)
10.3.2使傳送移動場景下的隧道效應(yīng)可見
10.3.3測試和總結(jié)
第11章項目打包與發(fā)布
11.1將項目打包成APK
11.1.1打包測試的適用場景
11.1.2打包APK的一般項目設(shè)置
11.2URP項目打包步驟
11.2.1URP管線的優(yōu)點
11.2.2URP管線項目的打包設(shè)置
11.3主流VR應(yīng)用市場平臺
11.4在Oculus Quest上發(fā)布應(yīng)用
11.5在PICO平臺發(fā)布應(yīng)用