《Unity引擎》-第16章教學(xué)材料_第1頁
《Unity引擎》-第16章教學(xué)材料_第2頁
《Unity引擎》-第16章教學(xué)材料_第3頁
《Unity引擎》-第16章教學(xué)材料_第4頁
《Unity引擎》-第16章教學(xué)材料_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

16.1項目準(zhǔn)備工作新建一個Unity項目,取名為VRHome,先保存場景VRHome,如圖16.1所示。導(dǎo)入樣板間模型和谷歌的CardBoardSDK,直接把CardboardSDKForUnity和shljz.FBX拖到Unity的Project窗口,如圖16.2所示。把場景里的主攝像機MainCamera刪除,這里使用的是谷歌CardBoardSDK里的攝像機,里面封裝好了VR的功能(包括陀螺儀、屏幕左右分屏)。下一頁返回16.1項目準(zhǔn)備工作

把虛擬樣板間模型拖到場景里面,預(yù)覽模型,一些門模型的位置需要調(diào)整。調(diào)整完畢后把樣板間的Transform組件Reset重置一下,讓它位于世界坐標(biāo)系的中心(0,0,0)位置,如圖16.3所示。把Cardboardsdk里面的攝像機CardboardMain拖到場景里。調(diào)整相機的位置至合適的角度.上一頁返回16.2準(zhǔn)心點功能制作導(dǎo)入準(zhǔn)心點的UI素材,把圖片格式切換成Sprite(2D和UI),在CardboardMain的Head下的MainCamera中添加一個畫布,將畫布的RenderMode設(shè)置成WorldSpace,新建兩張image,一個是圓心點,另一個是紅色圓環(huán),如圖16.6所示,圓環(huán)的Image類型設(shè)置為Filled,可填充模式,把FillAmount值設(shè)置為0;調(diào)整畫布的位置和大小,讓它位于屏幕中心,如圖16.7所示。給紅色圓環(huán)加上腳本Ring.cs,來實現(xiàn)準(zhǔn)心點加載功能,主要原理是在Update方法里,通過發(fā)射射線檢測碰撞,碰到需要交互的物體,加載準(zhǔn)心點,準(zhǔn)心點加載完后觸發(fā)相應(yīng)的動作(開關(guān)電視、播放鋼琴曲、開關(guān)門等)。下一頁返回16.2準(zhǔn)心點功能制作在Awake方法里先找到主攝像機和紅色圓環(huán)圖像組件,在Update方法里,每一幀發(fā)射一條射線,當(dāng)射線碰到物體時加載準(zhǔn)心點圓環(huán),射線離開物體,取消準(zhǔn)心點加載。保存腳本,在場景里新建一個Cube,放到攝像機的前面,運行游戲,調(diào)整CardboardMain的角度,讓攝像機看著Cube,測試準(zhǔn)心點加載效果,如圖16.9所示。上一頁返回16.3開關(guān)門功能制作(1)找到場景中的門對象,重命名為door,給門添加一個碰撞器BoxCollider(只有加了碰撞器,射線才能檢測到)。(2)給門添加一個open/close開關(guān)門動畫。選中門對象,按Ctrl+6組合鍵打開動畫編輯窗口,創(chuàng)建一個open的動畫片段,添加Rotation屬性,設(shè)置關(guān)鍵幀,調(diào)整門模型的角度。(3)創(chuàng)建完動畫后,會默認(rèn)在虛擬樣板間的模型shljz上面添加一個動畫控制器AnimatorControl,打開動畫控制器窗口,編輯動畫狀態(tài)機,設(shè)置一個Trigger類型的動畫過渡條件door,用來切換開關(guān)門動畫。把open和close的動畫片段的循環(huán)播放屬性去掉,只播放一次。下一頁返回16.3開關(guān)門功能制作

在代碼里實現(xiàn)準(zhǔn)心點看著門,準(zhǔn)心點加載完畢后執(zhí)行開/關(guān)門動作。在Awake方法里,先找到虛擬樣板間shljz對象,從它身上獲取動畫控制器組件Animator。在Update方法里,準(zhǔn)心點加載完畢后,判斷射線是否碰撞到door,是的話通過動畫控制器SetTrigger來播放開關(guān)門動畫。保存腳本,運行游戲,調(diào)整CardboardMain的位置,讓準(zhǔn)心點看著門,準(zhǔn)心點加載完畢后門會自動打開。上一頁返回16.4室內(nèi)漫游功能在虛擬樣板間實現(xiàn)漫游功能。準(zhǔn)心點看著地板,準(zhǔn)心點加載完畢后攝像機會移動到準(zhǔn)心點的位置,以此來達(dá)到在樣板間漫游的效果。給可漫游的區(qū)域地板添加碰撞器Collider組件。選中地板模型,添加BoxCollider組件,所有能移動到的地板模型的名字都要重命名為floor(射線檢測碰撞時要用到)。在代碼里添加漫游功能。在Awake里找到VR相機,如圖16.19所示。下一頁返回16.4室內(nèi)漫游功能

在Update方法里判斷準(zhǔn)心點是否看著地面,是否需要執(zhí)行移動,把VR相機坐標(biāo)設(shè)置為射線與地板碰撞點的坐標(biāo),如圖16.20所示。保存腳本,運行游戲,調(diào)整CardboardMain的旋轉(zhuǎn)角度,讓攝像機看著地面,測試室內(nèi)漫游功能。上一頁返回16.5播放鋼琴曲功能介紹:準(zhǔn)心點看著鋼琴,播放、關(guān)閉鋼琴曲。(1)首先把MP3格式的鋼琴曲導(dǎo)入到Unity。給鋼琴的琴鍵改名為paino,同時給它加上碰撞器,讓它可以被射線碰撞到,如圖16.22所示。(2)給paino添加一個AudioSource組件,用來控制聲音播放。把paino.mp3文件拖到AudioSource組件上的AudioClip屬性,然后把“PlayonAwake”復(fù)選框勾掉,在代碼里控制聲音的播放。(3)代碼里實現(xiàn)功能。在Awake方法里,先找到AudioSource音頻控制組件。下一頁返回16.5播放鋼琴曲

在Update里添加播放鋼琴曲的代碼,當(dāng)音頻處于播放時就關(guān)閉,處于關(guān)閉狀態(tài)就播放。保存腳本,運行游戲,調(diào)整CardboardMain的旋轉(zhuǎn)角度,讓攝像機看著鋼琴鍵。測試鋼琴曲的播放并關(guān)閉。上一頁返回16.6開關(guān)電視功能介紹:準(zhǔn)心點看著電視,準(zhǔn)心點加載完畢后,控制電視開關(guān)。視頻播放功能這里用的是EasyMovieTexture插件。首先把EasyMovieTexture插件導(dǎo)入到Unity,如圖16.26所示。在場景中找到電視屏幕,重命名為TV,把EasyMovieTexture下面的VideoManager拖到TV下面,調(diào)整位置和大小,給VideoManager添加碰撞器,檢測射線碰撞。VideoManager對象身上的MediaPlayerCtrl.cs腳本控制著視頻播放的功能,可以控制視頻的播放、暫停、停止、快進(jìn)等。有幾個屬性需要說明。下一頁返回16.6開關(guān)電視

StrFileName:播放的視頻文件(視頻文件需要放到StreamingAssets目錄下才能被讀?。?。BAutoPlay:自動播放功能,勾選掉該復(fù)選框,在代碼里控制視頻播放。在代碼里控制視頻播放功能。先在Awake方法里獲取MediaPlayerCtrl.cs組件。在Update方法里,判斷射線是否碰撞到電視,如果視頻處于播放狀態(tài),則停止播放;與之相反,處于停止?fàn)顟B(tài)則播放視頻。保存腳本,開始游戲,調(diào)整CardboardMain的旋轉(zhuǎn)角度,讓攝像機看著電視。測試電視的開機和關(guān)閉。上一頁返回16.7交互物體添加發(fā)光效果交互功能基本完成了,接下來給需要交互的物體(門、電視、鋼琴)添加一個發(fā)光的特效,讓它們與普通物品區(qū)分開來。(1)選中房子模型對象shljz,按Ctrl+6組合鍵打開動畫編輯窗口,如圖16.32所示,里面已經(jīng)有前面創(chuàng)建的兩個動畫(門的開關(guān))。(2)通過圖16.33所示新建一個動畫片段,這里命名為flash。(3)在flash動畫片段里添加模型門、電視、鋼琴的MeshRenderer.Material._Color屬性到屬性窗口。(4)在1秒60幀的中間加一關(guān)鍵幀,把r、g、b、a這4個顏色值做些調(diào)整,讓1秒顏色有個過渡變化的過程。下一頁返回16.7交互物體添加發(fā)光效果(5)設(shè)置好動畫關(guān)鍵幀后,打開動畫控制器窗口,為了不和開門的動作沖突,這里通過“+”號新建一個動畫控制層,命名為flash。創(chuàng)建好動畫層后設(shè)置下層的屬性,單擊齒輪圖標(biāo),把Weight屬性設(shè)置為1,然后把前面創(chuàng)建的flash動畫片段拖到動畫控制器窗口,Entry會自動連接flash,如圖16.37所示。(6)運行游戲并測試效果,門、電視、鋼琴都會自動執(zhí)行發(fā)光的特效。上一頁返回16.8打包發(fā)布所有的功能都完成了,接著保存場景,打包發(fā)布到Android平臺,測試真機效果。出Android包前面的教程已經(jīng)介紹了,這里就不詳細(xì)說明了。手機上的測試效果如圖16.39和圖16.40所示。上一頁返回圖16.1新建場景并保存返回圖16.2Unity的Project窗口返回圖16.3調(diào)整樣板間返回圖16.6新建兩張image返回圖16.7調(diào)整畫布至屏幕中心返回圖16.9測試準(zhǔn)心點加載效果返回圖16.19在Awake里找

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論