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