版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章VR開發(fā)
5.7操作實(shí)例3:三維游戲SurvivalShooter的VR改造
三維游戲SurvivalShooter是Unity官方提供的一個(gè)教程實(shí)例,采用“上帝視角”,游戲畫面精致,操作方便,可玩性強(qiáng),畫面如圖所示。相信很多讀者在學(xué)習(xí)Unity的時(shí)候都接觸過它。在本例中,我們使用HTCVIVE平臺(tái),將這款游戲改造成VR的形式。通過這樣的方式,介紹虛擬現(xiàn)實(shí)在游戲中的應(yīng)用特點(diǎn)。實(shí)現(xiàn)步驟如下。(1)新建一個(gè)Unity工程項(xiàng)目,在其中導(dǎo)入SurvivalShooter、VRTK和SteamVR的UnityPackage素材包。(2)在PlayerSettings里的“XRSettings”里勾選“VirtualRealitySupported”,然后單擊“+”按鈕,添加“OpenVR”選項(xiàng),設(shè)置項(xiàng)目對(duì)VR的支持如圖所示。(3)打開SurvivalShooter包中的Complete-Game場景。這是Unity官方已經(jīng)做好的具有完整功能的場景,我們就在此基礎(chǔ)之上修改。(4)刪除場景中原有的主攝像機(jī)MainCamera。因?yàn)閂R中需要使用VR攝像機(jī)。(5)刪除Player物體上所掛載的PlayerMovement和動(dòng)畫組件。因?yàn)樵瓉淼挠螒蛑惺鞘褂玫谌朔Q視角,玩家可以看到主角本身的形象和動(dòng)作,而VR中玩家本身就是主角,游戲使用第一人稱視角,所以就不需要Player物體的移動(dòng)和動(dòng)畫功能。(6)新建空物體并命名為sdkmanager,在其上添加VRTK_SDKManager組件,開始HTCVIVE的VRTK配置。(7)新建空物體并命名為sdksetup,為其添加VRTK_SDKSetup組件。并將SteamVR中的CameraRig和SteamVR預(yù)設(shè)體從Project面板拖入場景,作為sdksetup的子物體。在VRTK_SDKSetup組件中的“QuickSelect”中,選擇SteamVR平臺(tái),如圖所示。(8)回到sdkmanager物體,在其VRTK_SDKManager組件中單擊“AutoPopulate”按鈕,將SteamVR的SDK加入VRTK_SDKManager組件。在VRTK_SDKManager組件中添加SteamVR的SDK,如圖所示。(9)試運(yùn)行場景,可以看到HTCVIVE頭顯正常運(yùn)作。但是,游戲中的敵人會(huì)直接走到玩家的位置,感覺像走到玩家身體里去了,在視角上有點(diǎn)不太對(duì)。應(yīng)該是敵人走到玩家的面前就停下來,不能再靠近。(10)解決上面的問題可以新建一個(gè)VRTKScripts空物體,命名為headsetalias,作為頭顯替代物。其上放置VRTK_SDKObjectAlias腳本,設(shè)置“SDKObject”屬性的值為“Headset”,這樣場景中的其他物體就會(huì)感知到用戶的頭顯,產(chǎn)生碰撞阻擋效果。同時(shí),找到場景中的Player物體,為其加上一個(gè)VRTK_TransformFollow組件,設(shè)置“GameObjectToFollow”為“headsetalias”,設(shè)置頭顯替代物追隨Player物體而移動(dòng)如圖所示。這樣,頭顯替代物就會(huì)跟著Player物體的移動(dòng)而移動(dòng),從而保證不會(huì)再出現(xiàn)敵人走到玩家身體里的現(xiàn)象。(11)現(xiàn)在運(yùn)行場景,玩家可以在一定范圍內(nèi)走動(dòng)。但是由于游戲中場景比較大,超出了HTCVIVE的可移動(dòng)范圍,所以需要設(shè)置Teleport跳轉(zhuǎn)。
在VRTKScripts物體下,新建兩個(gè)子物體LeftHandController和RightHandController作為左、右手柄控制器,在它們上面添加ControllerEvents、VRTKPointer、StraightPointerRenderer組件,并將StraightPointerRenderer組件拖動(dòng)到VRTKPointer組件的“PointerRenderer”屬性框中。然后,將左、右手柄控制器物體拖入SDKManager組件的相應(yīng)屬性框,完成手柄控制器的設(shè)定,左、右手柄控制器屬性設(shè)置如圖所示。
最后,再建立一個(gè)空物體,命名為PlayArea,其上放置BasicTeleport腳本,保持默認(rèn)屬性設(shè)置不修改。這樣就完成了Teleport跳轉(zhuǎn)功能。(12)這時(shí)玩家還只能走動(dòng)和跳轉(zhuǎn)位置,不能攻擊敵人。下面將原來游戲中玩家的槍綁定到手柄控制器上。在RightHandController右手柄控制器物體上,添加VRTK_InteractTouch、VRTK_InteractGrab、VRTK_ObjectAutoGrab這3個(gè)組件,使右手柄控制器具備一直自動(dòng)抓取物體的能力。
然后新建一個(gè)物體,命名為GunHolder。將Player物體下的Gun槍物體拖過來,作為GunHolder的子物體。單擊“Window”→“VRTK”→“SetupInteractableObject”,將GunHolder物體轉(zhuǎn)變?yōu)榭山换ノ矬w,并修改其VRTK_InteractableObject組件的“ValidDrop”為“NoDrop”,也就是抓到之后不丟棄如圖所示。再將Gun物體拖入右手柄控制器的VRTK_ObjectAutoGrab組件的“ObjectToGrab”中。自動(dòng)抓取物體設(shè)置如圖所示。這樣,Gun物體就將一直跟隨右手手柄移動(dòng),就像玩家拿著它一樣。(13)把Gun物體原來的SkinnedMeshRenderer組件刪掉,因?yàn)檫@個(gè)組件不支持VR渲染。改為添加MeshFilter和MeshRenderer組件,并將原來Gun物體的Mesh和Material拖入相應(yīng)的屬性框,使用MeshFilter和MeshRenderer組件如圖所示。(14)修改Gun物體的位置屬性和旋轉(zhuǎn)屬性,將它們都?xì)w零。并添加一個(gè)BoxCollider在GunHolder物體上,從而使槍物體形成物理碰撞的阻擋效果。(15)在GunHolder物體下再創(chuàng)建一個(gè)子物體,命名為snaphandle,將其放置在合適的位置。此物體作為一個(gè)標(biāo)識(shí),標(biāo)識(shí)出右手柄控制器抓在GunHolder的哪個(gè)位置上。在GunHolder物體的VRTK_ChildofControllerGrabAttach組件中,設(shè)置“RightSnapHandle”屬性為剛剛創(chuàng)建的snaphandle物體,設(shè)置snaphandle作為抓手位置如圖所示。(16)現(xiàn)在Gun物體會(huì)隨著玩家拿著的右手柄控制器移動(dòng),好像玩家將它拿在手里一樣。下面繼續(xù)修改,實(shí)現(xiàn)按手柄控制器按鍵就射擊的功能。找到PlayerShooting腳本,添加一個(gè)VRTK的控制器事件類型的公共變量:
VRTK.VRTK_ControllerEventsvrtkCtrlEvents在Update()函數(shù)中,找到判斷用戶輸入實(shí)現(xiàn)射擊的if語句,添加“或”條件,具體腳本如下:
PlayerShooting腳本經(jīng)過這樣的修改,就能夠獲取玩家按下手柄控制器上的Trigger鍵的事件,并調(diào)用Shoot()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《翡翠培訓(xùn)資料》課件
- 《證券買賣技巧教案》課件
- 《證券基金銷售培訓(xùn)》課件
- 單位管理制度集粹匯編員工管理篇
- 單位管理制度分享大全【人力資源管理篇】
- 《社區(qū)工作實(shí)務(wù)》課件
- 單位管理制度范例選集【人力資源管理篇】十篇
- 單位管理制度范例合集職工管理十篇
- 單位管理制度呈現(xiàn)合集【人事管理】十篇
- 寒假自習(xí)課 25春初中地理八年級(jí)下冊人教版教學(xué)課件 第八章 第二節(jié) 干旱的寶地-塔里木盆地 第2課時(shí) 油氣資源的開發(fā)
- 老年病及老年綜合征中醫(yī)證治概要
- 三年級(jí)上冊數(shù)學(xué)說課稿- 2.2 看一看(二)-北師大版
- 超星爾雅學(xué)習(xí)通《西廂記》賞析(首都師范大學(xué))網(wǎng)課章節(jié)測試答案
- 切削液的配方
- 塑料門窗及型材功能結(jié)構(gòu)尺寸
- 2023-2024學(xué)年湖南省懷化市小學(xué)數(shù)學(xué)五年級(jí)上冊期末深度自測試卷
- GB 7101-2022食品安全國家標(biāo)準(zhǔn)飲料
- 超實(shí)用的發(fā)聲訓(xùn)練方法
- 《第六課 從傳統(tǒng)到現(xiàn)代課件》高中美術(shù)湘美版美術(shù)鑒賞
- 英語四六級(jí)講座課件
- Unit 3 On the move Understanding ideas(Running into a better life)課件- 高一上學(xué)期英語外研版(2019)必修第二冊
評(píng)論
0/150
提交評(píng)論