![第5章 VR開發(fā)-5.7 操作實例3:三維游戲Survival Shooter的VR改造_第1頁](http://file4.renrendoc.com/view/ceea8c5a391af56786ae35c57e6b50c3/ceea8c5a391af56786ae35c57e6b50c31.gif)
![第5章 VR開發(fā)-5.7 操作實例3:三維游戲Survival Shooter的VR改造_第2頁](http://file4.renrendoc.com/view/ceea8c5a391af56786ae35c57e6b50c3/ceea8c5a391af56786ae35c57e6b50c32.gif)
![第5章 VR開發(fā)-5.7 操作實例3:三維游戲Survival Shooter的VR改造_第3頁](http://file4.renrendoc.com/view/ceea8c5a391af56786ae35c57e6b50c3/ceea8c5a391af56786ae35c57e6b50c33.gif)
![第5章 VR開發(fā)-5.7 操作實例3:三維游戲Survival Shooter的VR改造_第4頁](http://file4.renrendoc.com/view/ceea8c5a391af56786ae35c57e6b50c3/ceea8c5a391af56786ae35c57e6b50c34.gif)
![第5章 VR開發(fā)-5.7 操作實例3:三維游戲Survival Shooter的VR改造_第5頁](http://file4.renrendoc.com/view/ceea8c5a391af56786ae35c57e6b50c3/ceea8c5a391af56786ae35c57e6b50c35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章VR開發(fā)
5.7操作實例3:三維游戲SurvivalShooter的VR改造
三維游戲SurvivalShooter是Unity官方提供的一個教程實例,采用“上帝視角”,游戲畫面精致,操作方便,可玩性強(qiáng),畫面如圖所示。相信很多讀者在學(xué)習(xí)Unity的時候都接觸過它。在本例中,我們使用HTCVIVE平臺,將這款游戲改造成VR的形式。通過這樣的方式,介紹虛擬現(xiàn)實在游戲中的應(yīng)用特點。實現(xiàn)步驟如下。(1)新建一個Unity工程項目,在其中導(dǎo)入SurvivalShooter、VRTK和SteamVR的UnityPackage素材包。(2)在PlayerSettings里的“XRSettings”里勾選“VirtualRealitySupported”,然后單擊“+”按鈕,添加“OpenVR”選項,設(shè)置項目對VR的支持如圖所示。(3)打開SurvivalShooter包中的Complete-Game場景。這是Unity官方已經(jīng)做好的具有完整功能的場景,我們就在此基礎(chǔ)之上修改。(4)刪除場景中原有的主攝像機(jī)MainCamera。因為VR中需要使用VR攝像機(jī)。(5)刪除Player物體上所掛載的PlayerMovement和動畫組件。因為原來的游戲中是使用第三人稱視角,玩家可以看到主角本身的形象和動作,而VR中玩家本身就是主角,游戲使用第一人稱視角,所以就不需要Player物體的移動和動畫功能。(6)新建空物體并命名為sdkmanager,在其上添加VRTK_SDKManager組件,開始HTCVIVE的VRTK配置。(7)新建空物體并命名為sdksetup,為其添加VRTK_SDKSetup組件。并將SteamVR中的CameraRig和SteamVR預(yù)設(shè)體從Project面板拖入場景,作為sdksetup的子物體。在VRTK_SDKSetup組件中的“QuickSelect”中,選擇SteamVR平臺,如圖所示。(8)回到sdkmanager物體,在其VRTK_SDKManager組件中單擊“AutoPopulate”按鈕,將SteamVR的SDK加入VRTK_SDKManager組件。在VRTK_SDKManager組件中添加SteamVR的SDK,如圖所示。(9)試運(yùn)行場景,可以看到HTCVIVE頭顯正常運(yùn)作。但是,游戲中的敵人會直接走到玩家的位置,感覺像走到玩家身體里去了,在視角上有點不太對。應(yīng)該是敵人走到玩家的面前就停下來,不能再靠近。(10)解決上面的問題可以新建一個VRTKScripts空物體,命名為headsetalias,作為頭顯替代物。其上放置VRTK_SDKObjectAlias腳本,設(shè)置“SDKObject”屬性的值為“Headset”,這樣場景中的其他物體就會感知到用戶的頭顯,產(chǎn)生碰撞阻擋效果。同時,找到場景中的Player物體,為其加上一個VRTK_TransformFollow組件,設(shè)置“GameObjectToFollow”為“headsetalias”,設(shè)置頭顯替代物追隨Player物體而移動如圖所示。這樣,頭顯替代物就會跟著Player物體的移動而移動,從而保證不會再出現(xiàn)敵人走到玩家身體里的現(xiàn)象。(11)現(xiàn)在運(yùn)行場景,玩家可以在一定范圍內(nèi)走動。但是由于游戲中場景比較大,超出了HTCVIVE的可移動范圍,所以需要設(shè)置Teleport跳轉(zhuǎn)。
在VRTKScripts物體下,新建兩個子物體LeftHandController和RightHandController作為左、右手柄控制器,在它們上面添加ControllerEvents、VRTKPointer、StraightPointerRenderer組件,并將StraightPointerRenderer組件拖動到VRTKPointer組件的“PointerRenderer”屬性框中。然后,將左、右手柄控制器物體拖入SDKManager組件的相應(yīng)屬性框,完成手柄控制器的設(shè)定,左、右手柄控制器屬性設(shè)置如圖所示。
最后,再建立一個空物體,命名為PlayArea,其上放置BasicTeleport腳本,保持默認(rèn)屬性設(shè)置不修改。這樣就完成了Teleport跳轉(zhuǎn)功能。(12)這時玩家還只能走動和跳轉(zhuǎn)位置,不能攻擊敵人。下面將原來游戲中玩家的槍綁定到手柄控制器上。在RightHandController右手柄控制器物體上,添加VRTK_InteractTouch、VRTK_InteractGrab、VRTK_ObjectAutoGrab這3個組件,使右手柄控制器具備一直自動抓取物體的能力。
然后新建一個物體,命名為GunHolder。將Player物體下的Gun槍物體拖過來,作為GunHolder的子物體。單擊“Window”→“VRTK”→“SetupInteractableObject”,將GunHolder物體轉(zhuǎn)變?yōu)榭山换ノ矬w,并修改其VRTK_InteractableObject組件的“ValidDrop”為“NoDrop”,也就是抓到之后不丟棄如圖所示。再將Gun物體拖入右手柄控制器的VRTK_ObjectAutoGrab組件的“ObjectToGrab”中。自動抓取物體設(shè)置如圖所示。這樣,Gun物體就將一直跟隨右手手柄移動,就像玩家拿著它一樣。(13)把Gun物體原來的SkinnedMeshRenderer組件刪掉,因為這個組件不支持VR渲染。改為添加MeshFilter和MeshRenderer組件,并將原來Gun物體的Mesh和Material拖入相應(yīng)的屬性框,使用MeshFilter和MeshRenderer組件如圖所示。(14)修改Gun物體的位置屬性和旋轉(zhuǎn)屬性,將它們都?xì)w零。并添加一個BoxCollider在GunHolder物體上,從而使槍物體形成物理碰撞的阻擋效果。(15)在GunHolder物體下再創(chuàng)建一個子物體,命名為snaphandle,將其放置在合適的位置。此物體作為一個標(biāo)識,標(biāo)識出右手柄控制器抓在GunHolder的哪個位置上。在GunHolder物體的VRTK_ChildofControllerGrabAttach組件中,設(shè)置“RightSnapHandle”屬性為剛剛創(chuàng)建的snaphandle物體,設(shè)置snaphandle作為抓手位置如圖所示。(16)現(xiàn)在Gun物體會隨著玩家拿著的右手柄控制器移動,好像玩家將它拿在手里一樣。下面繼續(xù)修改,實現(xiàn)按手柄控制器按鍵就射擊的功能。找到PlayerShooting腳本,添加一個VRTK的控制器事件類型的公共變量:
VRTK.VRTK_ControllerEventsvrtkCtrlEvents在Update()函數(shù)中,找到判斷用戶輸入實現(xiàn)射擊的if語句,添加“或”條件,具體腳本如下:
PlayerShooting腳本經(jīng)過這樣的修改,就能夠獲取玩家按下手柄控制器上的Trigger鍵的事件,并調(diào)用Shoot()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 終止合同協(xié)議書
- 買賣車協(xié)議書樣本
- 土地征收協(xié)議書
- 小學(xué)二年級下冊數(shù)學(xué)口算題卡
- 工程師年工作計劃報告
- 初中化學(xué)教學(xué)計劃
- 路面硬化施工合同范本
- 樂山職業(yè)技術(shù)學(xué)院《工程識圖與建筑構(gòu)造》2023-2024學(xué)年第二學(xué)期期末試卷
- 托管運(yùn)營合作運(yùn)營協(xié)議書范本
- 濟(jì)源職業(yè)技術(shù)學(xué)院《社區(qū)體育指導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 元宇宙視域下非遺保護(hù)與傳播途徑探究
- 2025年買賣個人房屋合同(4篇)
- 2025代運(yùn)營合同范本
- 武漢2025年湖北武漢理工大學(xué)管理人員招聘筆試歷年參考題庫附帶答案詳解
- 第十一章《功和機(jī)械能》達(dá)標(biāo)測試卷(含答案)2024-2025學(xué)年度人教版物理八年級下冊
- 2025年銷售部年度工作計劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 辦公用品價格清單
- ESG表現(xiàn)對企業(yè)財務(wù)績效的影響研究
- DB3713T 340-2024 實景三維數(shù)據(jù)接口及服務(wù)發(fā)布技術(shù)規(guī)范
評論
0/150
提交評論