全景VR视频游戏外包公司:技术分享使用U3D+CB制作VR游戏
隨著Oculus宣布1月6日開(kāi)啟預(yù)售,2016年很可能成為VR游戲元年,但很多的調(diào)研顯示,手游設(shè)備才是市場(chǎng)增長(zhǎng)的關(guān)鍵,SuperData發(fā)布的報(bào)告顯示,2016年全球VR游戲市場(chǎng)規(guī)模預(yù)計(jì)在51億美元左右,消費(fèi)者設(shè)備安裝量在3890萬(wàn)左右,憑借價(jià)格門(mén)檻的優(yōu)勢(shì),以谷歌Cardboard和三星Gear VR為代表的移動(dòng)VR設(shè)備很大可能成為用戶(hù)量最大的設(shè)備,可能占據(jù)2016年虛擬現(xiàn)實(shí)設(shè)備安裝量71%的份額,達(dá)到2700萬(wàn)。
我們的老朋友Ray在自己的博客中展示了如何用Unity和Cardboard把一款3D游戲變成VR游戲的方法,他在文章最后還表示,你甚至可以用這種方法把游戲轉(zhuǎn)化為AR游戲,或者從頭開(kāi)始做新的VR游戲。
很多的科幻電影都展示了用人類(lèi)意志控制物體的能力,但到目前為止,這仍舊是一種幻想,目前還沒(méi)有技術(shù)可以實(shí)現(xiàn)這一點(diǎn)。在這份新手教學(xué)博客中,你可以學(xué)到如何用Unity做一款兼但的虛擬現(xiàn)實(shí)游戲,配合谷歌Cardboard創(chuàng)造比較簡(jiǎn)單的VR體驗(yàn),本文主要講的是:
把Cardboard攝像頭集成到你的游戲中;調(diào)整UI元素以適應(yīng)VR模式;做VR模式下可以選擇的按鈕;在游戲運(yùn)行的時(shí)候程序化地把游戲在常規(guī)和VR模式下進(jìn)行切換。
谷歌Cardboard是個(gè)什么鬼?
理論上說(shuō),創(chuàng)造VR體驗(yàn)是非常直接的,你在屏幕上展示的并不是一個(gè)單獨(dú)的圖片,而是需要2個(gè)。因?yàn)樗鼈儊?lái)自位置相隔幾英寸距離的兩個(gè)攝像頭,玩家們從左攝像頭看到的是左邊圖像,右邊看到的則是右邊圖像,這就創(chuàng)造了游戲景深。
此外,再加上一些不錯(cuò)的動(dòng)態(tài)傳感器,你可以探測(cè)到用戶(hù)面朝哪個(gè)方向。把這些和你所創(chuàng)造的3D世界結(jié)合起來(lái)的話(huà),就可以獲得一個(gè)沉浸感很強(qiáng)的游戲體驗(yàn)。在實(shí)際情況中,在一個(gè)高分辨率的屏幕上展示兩個(gè)圖像需要非常復(fù)雜的硬件,還需要可以追蹤玩家的頭部運(yùn)動(dòng),把所有的功能集成到一個(gè)設(shè)備商,還要控制其重量,以免讓用戶(hù)戴起來(lái)太累。
然而,隨著谷歌Cardboard的出現(xiàn),每一臺(tái)智能機(jī)都有可能與Cardboard協(xié)作,可以用你手機(jī)的屏幕與傳感器,把它們變成VR設(shè)備的一種,而你所需要的,只是一些Cardboard和塑料鏡片。
開(kāi)始準(zhǔn)備
需要注意的是,你可能大量用到Unity GUI,所以如果從來(lái)沒(méi)有嘗試過(guò)這個(gè)工具,那么最好是看看Unity GUI教程。想要用Google Cardboard做出自己的VR游戲,你需要以下工具:
Unity專(zhuān)業(yè)版,5.0以上;一部智能機(jī),可以是iPhone 5以后的iOS設(shè)備,也可以是4.3以上版本的Android設(shè)備。需要說(shuō)的是,本文假設(shè)你是基于iPhone開(kāi)發(fā)VR游戲。
如果你從來(lái)沒(méi)有用過(guò)Unity而且也不熟悉界面,那最好是去讀Unity教程介紹
那么問(wèn)題來(lái)了,首先,你要有一個(gè)Cardboard設(shè)備,怎么搞到手呢?
當(dāng)然,如果還沒(méi)有Cardboard設(shè)備的話(huà),最好是從供應(yīng)商那里選購(gòu),價(jià)格加運(yùn)費(fèi)大約是20-30美元,如果你覺(jué)得自己非常善于DIY,也可以動(dòng)手做自己的版本。在購(gòu)買(mǎi)Cardboard的時(shí)候,要注意提到V2或者Cardboard 2.0的字樣,因?yàn)樗鼈冞m配了包括大屏幕的iPhone 6+在內(nèi)的更多手機(jī),還支持用戶(hù)通過(guò)按鈕進(jìn)行輸入操作。
##沒(méi)有Cardboard設(shè)備可以嗎?
從某種程度上說(shuō),是可以的,你仍然可以在自己的設(shè)備上運(yùn)行做出來(lái)的游戲,它看起來(lái)會(huì)是這樣的(下圖):
在玩游戲的時(shí)候,如果你用恰當(dāng)?shù)姆绞蕉⒅聊豢矗部梢哉业絍R的感覺(jué)。如果你移動(dòng)手機(jī),可以進(jìn)行控制。雖然你也可以玩這款游戲,還能夠看到游戲的實(shí)際效果,但這種體驗(yàn)是...你懂的。
長(zhǎng)話(huà)短說(shuō),如果你沒(méi)有足夠的耐心等待Cardboard到貨,你仍然可以從本文中學(xué)到東西,只是,如果有合適的設(shè)備,你能夠?qū)W的東西更多。
游戲Demo:Ninja Attack
投入一些時(shí)間嘗試這個(gè)Demo,下載并解壓這個(gè)Unity新手項(xiàng)目。接下來(lái)就是運(yùn)行Unity,在歡迎界面,選擇打開(kāi)(Open)-找到StarterNinja文件夾,打開(kāi)NinjaAttack項(xiàng)目。
項(xiàng)目瀏覽器(Project Browser)中,在Assets里雙擊MainScene按鈕,然后點(diǎn)擊Play嘗試一下這款游戲。在圖片中,你是左邊的忍者,隨著怪獸在屏幕中出現(xiàn),你可以在屏幕上點(diǎn)擊任何地方釋放一個(gè)忍者之星消滅怪獸,在擊殺20個(gè)怪獸之后,你就贏了,但是,如果怪獸到達(dá)了左邊的紅色區(qū)域,你就輸了。
這款游戲看起來(lái)很熟悉是嗎?熟悉的讀者可能會(huì)發(fā)現(xiàn),它其實(shí)就是我之前介紹SpriteKit以及Cocos2D教程用到的游戲,不過(guò)與之不同的是,這里的游戲是用3D渲染的。當(dāng)然,你并不一定能夠真正地看到非常酷炫的3D效果,這款游戲使用的是上帝視角,所以對(duì)所有的polygon進(jìn)行渲染總覺(jué)得浪費(fèi)時(shí)間,所以,你現(xiàn)在可以發(fā)現(xiàn)為什么這款游戲非常適合做成VR了。
開(kāi)始使用Cardboard
你需要做的第一件事就是為Unity下載Cardboard SDK。接下來(lái),把它導(dǎo)入到你的項(xiàng)目中。從Unity的主菜單,選擇AssetsImport PackageCustom Package,然后選擇你剛剛下載的CardboardSDKForUnity.unitypackage。確保所有東西都被選中,反選Legacy文件夾,然后點(diǎn)擊Import按鈕。
為了讓你的游戲作為一個(gè)VR體驗(yàn),你需要用到一些技巧,在Project Browser中的CardboardPrefabs文件夾里,把CardboardMain Prefab拖拽到你的場(chǎng)景中,在Inspector中,給其賦予和你的忍者角色一樣的位置(5.53,1.13,0.122),并且要進(jìn)行90度Y Rotation。
你會(huì)發(fā)現(xiàn)的是,它比忍者的中心部位略高,這樣可以展現(xiàn)出你在看他的眼睛。
接下來(lái),選擇主攝像頭(Main Camera)并且在Inspector中反選,做raccoon忍者對(duì)象的時(shí)候也需要同樣的操作。現(xiàn)在,把游戲在Unity編輯器中再次運(yùn)行,你就會(huì)看到一些類(lèi)似于3D場(chǎng)景的東西。如果你在移動(dòng)鼠標(biāo)的時(shí)候按住選擇鍵,你的攝像頭就會(huì)隨著頭部的運(yùn)動(dòng)進(jìn)行旋轉(zhuǎn)。
在iOS設(shè)備上運(yùn)行你的游戲場(chǎng)景
在Unity編輯器中運(yùn)行你的游戲是非常不錯(cuò)的,但最后一次檢查的時(shí)候,用VR頭盔配上電腦顯示器看起來(lái)會(huì)讓人很痛苦,所以我們需要適配到iPhone上。
選擇FileBuild Settings,iOS應(yīng)該已經(jīng)被選為你的默認(rèn)平臺(tái),點(diǎn)擊Click Player Settings然后轉(zhuǎn)換到Inspector。
在Resolution and Presentation菜單下,把Default Orientation設(shè)置成Landscape Left。
在其他設(shè)置(Other Settings)中,把Bundle Identifier改成你的公司所需要的東西,比如com.(你的公司名).NinjaAttackVR。
把目標(biāo)設(shè)備改為iPhone,把iPhone和電腦進(jìn)行連接,選擇Build和Run,然后給輸出文件夾命名,這個(gè)名字你可以隨意取。
這時(shí)候,Unity就會(huì)導(dǎo)出你的項(xiàng)目,然后它就會(huì)自動(dòng)在Xcode中打開(kāi),如果沒(méi)有打開(kāi),啟動(dòng)Xcode并且手動(dòng)打開(kāi)生成后的項(xiàng)目,運(yùn)行然后在手機(jī)上嘗試。首次運(yùn)行游戲的時(shí)候,你需要一系列的設(shè)置過(guò)程,比如可以在Cardboard硬件上掃描二維碼,這樣Cardboard SDK就可以根據(jù)你的設(shè)備、距離等進(jìn)行畫(huà)質(zhì)微調(diào)。
需要注意的是,如果設(shè)置過(guò)程中,你在掃描二維碼的時(shí)候出現(xiàn)了 網(wǎng)址打開(kāi)錯(cuò)誤,那就必須調(diào)整Xcode項(xiàng)目中的info.plist,蘋(píng)果開(kāi)發(fā)者論壇中有說(shuō)到這個(gè)問(wèn)題,感興趣的童鞋可以親自查閱。
接著,把你的手機(jī)插入Cardboard當(dāng)中,來(lái)回轉(zhuǎn)頭以調(diào)整攝像頭視角,你就可以看到相對(duì)不錯(cuò)的3D畫(huà)面了。
再一次把它做成游戲
能夠看到你的游戲世界是非常不錯(cuò)的,但初次之外,你還需要把玩法加入到游戲中,特別是你需要從忍者面朝的方向扔出忍者之星,這是你將要做的第一個(gè)玩法。
對(duì)于UI來(lái)說(shuō),Cardboard支持一個(gè)按鈕,看起來(lái)可能是比較有限,但如果把它和頭部的動(dòng)態(tài)追蹤相結(jié)合的話(huà),它可以做出更為復(fù)雜的互動(dòng)。在《Ninja Attack》中,你通過(guò)Cardboard.SDK.VRModeEnable資源偵測(cè)玩家是否開(kāi)始了VR模式,檢查按鈕是否和Cardboard.SDK.Triggered資源同時(shí)按下去了,如果這些值都對(duì),就可以在用戶(hù)面朝的方向扔出忍者之星。
打開(kāi)你的NinjaStarLauncher.cs腳本,你會(huì)發(fā)現(xiàn)它在Inspector里是和GameLogic GameObject連在一起的。
創(chuàng)造一個(gè)新的private變量:
private Vector3 _vrShooterOffset;
把它在Start() method中初始化:
_vrShooterOffset = new Vector3(0.0f, -0.4f, 1.0f);
用以下代碼替換Update ():
這就可以運(yùn)行了,接下來(lái)我們看看Update()是做什么的:
你首先檢查游戲是否在VR模式,用戶(hù)是否按下了按鈕檢查Cardboard.SDK singleton object上的資源。
在此之后,你可以調(diào)用LaunchNinjaStarFrom()釋放一個(gè)忍者之星,你需要用到兩個(gè)parameter:
第一個(gè)是GameObject頭文件,Cardboard庫(kù)會(huì)為你調(diào)出來(lái),所以它應(yīng)該是已經(jīng)指向了正確的位置;第二個(gè)是輕微偏移,這樣你面前的忍者之星就會(huì)看起來(lái)更真實(shí),否則的話(huà)你扔出去的忍者之星就像是在四只眼之間進(jìn)行運(yùn)動(dòng),雖然看起來(lái)很cool,但給人的感覺(jué)很奇怪。
由于你的Ninja Star GameObject已經(jīng)被設(shè)計(jì)飛往特定方向,所以它會(huì)朝著正確的方向進(jìn)攻。
再試一次,這時(shí)候,你可以轉(zhuǎn)頭扔向壞人,輸贏logic仍舊起作用。
解決Game Over菜單
你可能已經(jīng)注意到了,當(dāng)游戲結(jié)束的時(shí)候,用之前的Game Over按鈕,你的角色仍舊是在屏幕的左邊。這款游戲用到了Display Canvas來(lái)展示Game Over界面,Unity最新的GUI教程中有講到這一點(diǎn),它總是出現(xiàn)在游戲窗口的頂部。這個(gè)標(biāo)簽適用于大多數(shù)的游戲GUI,因?yàn)樗梢宰詣?dòng)適應(yīng)到你屏幕的上方,不論你的攝像頭在做什么,而且它可以非常不錯(cuò)地適應(yīng)不同屏幕尺寸。
但在這個(gè)案例中,你需要一個(gè)存在于游戲世界中的GUI canvas,有一部分原因是它可以在3D環(huán)境中更好渲染,但還因?yàn)椴幌M淹婕覑?ài)是叫鎖定到攝像頭上。你的玩家們需要可以上下自由地看,這樣他們可以看到不同的UI元素,找到最活躍的然后點(diǎn)擊按鈕。
創(chuàng)造一個(gè)新的Canvas
在Hierarchy菜單下選擇GameOverCanvas,右擊并且選擇復(fù)制,重命名為VRGameOverCanvas,這樣可以使它與原來(lái)的進(jìn)行區(qū)別開(kāi)來(lái),把GameOverTxt重命名為VRGameOvertxt。
在VRGameOverCanvas組件中,把渲染模式改為World Space。
在Rect Transform組件中,把位置改為(-2.24,1.1,0.07),然后進(jìn)行90度Y Rotation
最后,把X和Y Scale改為0.009,當(dāng)所有一切完成的時(shí)候,VRGameOverCanvas看起來(lái)因該是這樣的:
你可以在Game View視角下看到兩個(gè)canvas是大致重疊的(當(dāng)游戲不運(yùn)行的時(shí)候):
這些值是哪里來(lái)的呢?坦白地說(shuō),我其實(shí)是調(diào)整到自己通過(guò)Cardboard攝像頭看起來(lái)比較不錯(cuò)為止。有時(shí)候,編程更多的是一門(mén)藝術(shù)而不是學(xué)科。
支持兩個(gè)Canvase
接下來(lái),你需要更改GameController.cs,這樣它才會(huì)發(fā)現(xiàn)兩個(gè)Canvas打開(kāi)和GameLogic GameObject腳本,它也是和GameLogic GameObject聯(lián)系在一起的。把以下的兩個(gè)公共變量加入到你的class里:
public Canvas VRGameOverCanvas; public Text VRGameOverTxt; 在resetGame()的開(kāi)始加入如下代碼:
VRGameOverCanvas.enabled = false; 用以下代碼取代Gameover():
public void GameOver(bool didIWin) { isGameOver = true; _didIWin = didIWin; string finalTxt = (_didIWin) ? “You won!” : “Too bad”; if (Cardboard.SDK.VRModeEnabled) { VRGameOverCanvas.enabled = true; VRGameOverTxt.text = finalTxt; } else { gameOverCanvas.enabled = true; gameOverTxt.text = finalTxt; } } 這個(gè)展示了正確的Canvas和Text對(duì)象,取決于你是否在VR模式(開(kāi)啟Cardboard.SDK.VRMode).
在你保存了腳本之后,你需要把正確的對(duì)象分配到新的公用變量。在Inspector里找到GameController,點(diǎn)擊每個(gè)新變量旁邊的目標(biāo),然后選擇VRGameOverCanvas對(duì)象作為你的VR游戲Over Over Canvas變量,把VRGameOverTxt對(duì)象選為你的VR Game Over Txt變量。
需要注意的是,可能你會(huì)奇怪,為什么是很麻煩地支持兩個(gè)Canvas而不是至改變現(xiàn)有的一個(gè)呢?原因是,你既需要支持上帝視角,還需要支持VR模式,所以一定要進(jìn)行優(yōu)化。
如果你準(zhǔn)備現(xiàn)在就運(yùn)行游戲,就可以發(fā)現(xiàn)VR模式里的游戲結(jié)束界面展示的很自然。你可以上下看界面的不同部分,現(xiàn)在所有缺少的東西就是再來(lái)一次的按鈕。
增加Gaze輸入方式
幸運(yùn)的是,Unity內(nèi)置了‘在使用world-space GUI Canvas的時(shí)候,攝像頭中心點(diǎn)可以作為鼠標(biāo)使用’,但你需要提供額外的腳本才能使它在VR界面中進(jìn)行使用。
首先,擴(kuò)展Cardboard MainHead,找到主攝像頭并把它重命名為VR Main Camera。選中VRGameOverCanvas對(duì)象,你們應(yīng)該可以看到一個(gè)事件攝像頭,點(diǎn)擊Hierarchy里的EventSystem項(xiàng)目,點(diǎn)擊增加組件按鈕,并增加GazeInpute Module腳本。這個(gè)腳本可以確保Unity的GUI系統(tǒng)了解Cardboard攝像頭的工作方式。
檢查VR Mode Only,因?yàn)樵赩R模式下的時(shí)候,只需要這么運(yùn)行就可以了。最后,點(diǎn)擊你剛剛增加的Gaze Input Module Component,然后選擇Move Up,重復(fù)一次,確保它可以出現(xiàn)在觸屏輸入和獨(dú)立輸入模式中,這可以確保Gaze Input Module在游戲進(jìn)行的同時(shí)優(yōu)先選擇輸入方式。當(dāng)所有都做好的時(shí)候,它看起來(lái)應(yīng)該是這樣的:
現(xiàn)在,你就可以進(jìn)行嘗試了。這一次,當(dāng)你把視角放到Play Again按鈕的時(shí)候,它就會(huì)變綠,讓你重新開(kāi)始一場(chǎng)新的游戲。
玩法微調(diào)
或許你會(huì)發(fā)現(xiàn)這個(gè)版本的游戲在VR模式下玩起來(lái)有點(diǎn)難,這是因?yàn)槟愕囊暯鞘强s水的,所以在你看著錯(cuò)誤的方向時(shí),敵人很容易從你身邊溜過(guò)去。而且,你無(wú)法迅速改變瞄準(zhǔn)方向,你會(huì)因?yàn)椴弊愚D(zhuǎn)速的限制而影響到游戲操作。你讓玩家體驗(yàn)VR模式并不是為了懲罰他們,所以,你該如何調(diào)整呢?當(dāng)然,可能會(huì)有人建議把敵人速度降低。
在Prefabs文件夾中選中EvilSlimeEnemy Prefab,然后打開(kāi)EnemyMover.cs,把以下代碼增加到Start(),隨后設(shè)置速度:
這會(huì)讓你的游戲在VR模式下變得更簡(jiǎn)單,所以玩家們不至于因?yàn)檫x擇了VR模式就獲得糟糕體驗(yàn)。
解決屏幕上的分?jǐn)?shù)顯示問(wèn)題
你還需要解決的一個(gè)UI問(wèn)題是屏幕上的分?jǐn)?shù),這個(gè)就需要不同的方式來(lái)處理了。雖然它仍然需要在VR模式中恰當(dāng)?shù)谋伙@示出來(lái),但你更希望它在你看任何方向的時(shí)候都固定在攝像頭上。
選中Cardboard MainHead,右擊并選擇UICanvas,重命名新的canvas為VRScoreCanvas,把渲染模式調(diào)整為World Space,為其賦予以下值:
位置(0,1,2.5)、寬度400、高度100、旋轉(zhuǎn)(0,0,0)、Scale(0.0115,0.0115,1)。當(dāng)完成之后,游戲看起來(lái)該是這樣的:
看起來(lái)可能你的文本很奇怪地放在了屏幕中央,但在VR模式里,你能夠看到的世界比正常情況下是少很多的,所以你在游戲中看到分?jǐn)?shù)的時(shí)候應(yīng)該是在邊緣部位的,你可以自由進(jìn)行位置調(diào)整,以使其適應(yīng)你的手機(jī)。
接下來(lái),使用文本對(duì)象展示你的分?jǐn)?shù),這個(gè)過(guò)程和Game Over的做法類(lèi)似。
打開(kāi)GameController.cs并增加一個(gè)新的公用變量:
public Text VRScoreTxt; 接下來(lái),你每次更新scoreTxt的時(shí)候都需要更新VRScoreTxt,在ResetGame() method中,把以下代碼加在每次更新后的scoreTxt之后:
VRScoreTxt.text = “–“; 然后把這行代碼增加到GotOne(),也放在更新scoreTxt的后面:
VRScoreTxt.text = “” + _currScore; 保存你的腳本,回到Unity,然后你會(huì)發(fā)現(xiàn)GameLogic當(dāng)中的GameController Component如今可以輸入VR Score Txt變量了,點(diǎn)擊臨近的目標(biāo)然后選擇你的VRScoreTxt文本對(duì)象。
再次體驗(yàn)?zāi)愕挠螒颍F(xiàn)在,你就可以看到分?jǐn)?shù)出現(xiàn)在左上角了,還可以允許你的頭部進(jìn)行運(yùn)動(dòng)。
VR模式的切換
由于你的游戲同時(shí)支持上帝視角和VR模式,你應(yīng)該給用戶(hù)自由切換的選擇,UI做起來(lái)是很直觀(guān)的,你只需要在上帝視角模式中加入一個(gè)簡(jiǎn)單的按鈕,讓玩家們來(lái)回切換模式即可。
首先,你需要增加切換的代碼,選擇Hierarchy里的GameLogic,點(diǎn)擊增加組件,選擇新腳本(New Script)然后把腳本命名為CardboardSwapper。
打開(kāi)并用以下內(nèi)容替換class代碼:
這個(gè)class里最重要的method就是ActiveVRMode,它是用來(lái)激活Cardboard的VR模式的。其余的logic負(fù)責(zé)控制場(chǎng)景中的多個(gè)GameObject,取決于是否處于VR模式,你在上帝視角是看不到某些東西的。
你還可以發(fā)現(xiàn)的是,當(dāng)你偵測(cè)后面按鈕的時(shí)候調(diào)用了Switch(),這個(gè)功能非常適合測(cè)試。
你還需要為GameController腳本增加更多的logic,這樣它才能在切換模式的時(shí)候展示或者隱藏一些東西,打開(kāi)GameController.cs,把這個(gè)method加進(jìn)去:
public void RefreshGameOver() {
gameOverCanvas.enabled = false;
VRGameOverCanvas.enabled = false;
if (isGameOver) {
GameOver(_didIWin);
}
} 保存一切然后重新回到Unity界面,選擇GameLogic然后向下滾動(dòng)到Cardboard Swapper組件,對(duì)于Cardboard Object數(shù)列,把它的大小賦值為1,然后放到場(chǎng)景中的CardboardMain GameObject中。這樣不僅可以禁用你的Cardboard Head讓你回到上帝視角攝像頭模式,還可以禁用VRScoreCanvas。
對(duì)于Mono Object數(shù)列,把它的大小賦值為3,然后為你的場(chǎng)景選擇Canvas、Main Camera和raccoon ninja,不要從Assets里選擇。
最后你需要在上帝視角canvas為用戶(hù)增加一個(gè)按鈕,為了節(jié)約時(shí)間,我已經(jīng)把它做好了,位于prefabs文件夾中。
從AssetsPrefabs中把CardboardButton推拽到Hierarchy,這樣它就成為了你的Canvas對(duì)象的子對(duì)象,確保其位置設(shè)定是(-50,50,0):
在你的按鈕對(duì)象底部,把它們連接起來(lái),這樣點(diǎn)擊按鈕的時(shí)候就可以調(diào)用CardboardSwapper.Switch() method,你可以從這個(gè)動(dòng)畫(huà)看看是如何做出來(lái)的:
再次嘗試你的游戲,點(diǎn)擊屏幕右下方的按鈕切換至VR模式,然后單機(jī)Cardboard界面背后的按鈕切換到上帝視角模式。做到這里,你的VR模式切換就已經(jīng)完成了。
現(xiàn)在,你可以把Unity中的任何3D游戲做成VR游戲了,而且只需要一個(gè)Cardboard和一些塑料鏡片,這是可以讓所有人都能夠體驗(yàn)的VR游戲。Android版本的做法和iOS大致相同,谷歌的Unity Developer指南還提供了更多的技術(shù)信息。最后,你甚至可以為你的VR游戲增加AR功能。
何去何從
最后,你可以嘗試Unity里所有的3D游戲,看是否能夠順利地做成VR體驗(yàn),或者,這個(gè)教程也可以讓你做出全新的VR游戲。
總結(jié)
以上是生活随笔為你收集整理的全景VR视频游戏外包公司:技术分享使用U3D+CB制作VR游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gtx770功耗(GTX770)
- 下一篇: 使用pr把模糊视频变清晰的方法