【三星官方教程】如何為Gear VR開發應用(五):新增功能

Alasa_TT發表於2016-09-01

現在兩個場景都已經制作完成,可以在照片檢視器中加入一些功能了。這個應用中使用射線系統,從鏡頭髮出射線,與場景中的物件發生碰撞。碰撞會檢測到某些標記,從而通知系統執行一些特定的動作。這個應用裡的主要功能包括前進,後退功能,以及播放幻燈。

在這期教程中,你將學到:

·建立射線以觸發某個按鈕

·建立一個用來瞄準按鈕的準星

·建立一個物件,用來管理使用者的輸入,比如點選或觸控

·建立一個物件,當某個按鈕被觸發後,通知應用迴圈播放一系列不同的背景

·建立並實施物件的標籤

·用指令碼控制迴圈播放的屬性,如時長和模式

·將圖片載入球面

·在GearVR 上建立並執行完成後的app

 

1)使用替代場景

建議用前幾期教程中製作的啟動場景和主場景作為本期教程的起點。但如果你想用一個乾淨的檔案來開始本期教程,也可以使用Unity自帶的替代場景。

A.返回Unity,關閉Build Settings視窗。

B.Project視窗,找到/Assets/Workshop/Scenes/CatchUpScenes資料夾,開啟 3_Main.unity 檔案。

C.在選單中,選擇File > Save Scene as…。在Save Scene對話方塊,將檔名設為Main.unity並儲存到/Assets/Workshop/Scenes資料夾。選擇覆蓋現有的Main.unity檔案。

D.Project視窗,找到/Assets/Workshop/Scenes/CatchUpScenes資料夾,開啟3_Splash.unity

E.在選單中,選擇File > Save Scene as…。在Save Scene對話方塊,將檔名設為Splash.unity並儲存到/Assets/Workshop/Scenes資料夾。選擇覆蓋現有的Splash.unity檔案。

 

2)為鏡頭加上射線

A.返回Unity,開啟Main.unity檔案。

B.Hierarchy視窗,選擇OVRCameraRig>TrackingSpace>CenterEyeAnchor

C.選擇Create > Create Empty Child


D.Inspector視窗,將空物件的名字改為Raycaster

E.點選Add Component按鈕,選擇Scripts >Raycaster。這樣你就可以向一個目標發出射線。


 

3)為鏡頭加上準星

A.Hierarchy視窗,選擇Create > 2D Object > Sprite

B.New Sprite拖到OVRCameraRig>TrackingSpace>CenterEyeAnchor中。


C.Inspector視窗,將Sprite的名字改為Reticle

D.有些物件會被放在不易找到的地方,而在場景中,很難精確地吧物件放在某個地方。在Transform部分,點選齒輪圖示,選擇Reset。這樣可以把物件放在 (000)


E.Project視窗,開啟/Assets/Workshop/Textures資料夾,把Reticle檔案拖到Inspector視窗中的Sprite Renderer > Sprite輸入框。


F.Transform部分,將PositionZ設為5。準星因位於播放幻燈按鈕的正前方。

G.Scales XY,和Z設為0.1


H.點選Add Component按鈕並選擇Scripts > Reticle。這會使射線的軌跡遵循準星的位置。

I.Reticle部分,將Pressed Color設為綠色。


J.點選Play按鈕預覽場景。你應該可以看到播放幻燈按鈕前面顯示了白色的準星。

K.再次點選Play按鈕退出預覽。

 

4)建立InputManager物件

A.Hierarchy視窗,選擇Create > Create Empty

B.Inspector視窗,將空物件的名字改為InputManager。這個物件是用來檢測使用者輸入的。

C.點選Add Component按鈕,選擇 Scripts > Input Manager。當某個物件被輕觸,Is Pressed的屬性會在onoff 間切換。


 

5)建立Createthe AppManager

A.Hierarchy視窗,右擊InputManager,選擇Duplicate

B.Inspector視窗,將InputManager (1)的名字改為AppManager。這個物件用來通知系統對使用者的輸入採取什麼反應。

C.Input Manager部分,選擇Script輸入框邊上的target 按鈕。在SelectMonoScript視窗,找到並選擇ApplicationManager指令碼。


當使用者觸動某個按鈕,場景的背景材質會切換。所有的三個按鈕都會打上標籤,告訴app每個按鈕的功能。例如:如果Button_Advance被觸動,背景會切換到下一張材質。

 

6)定義物件標籤

A.在選單中,選擇Edit > Project Settings > Tags andLayers

B.Inspector視窗,展開Tags部分。

C.點選Add (+) 按鈕增加一個標籤。將Tag 0內容設為IncrementButton

D.再增加兩個標籤,並設為如下內容:

Tag 1: DecremenButton

Tag 2: SlideshowButton

說明:IncrementButtonDecrementButton,和SlideshowButton這三個標籤是專門為我們這個教程建立的,在這個app裡一定要用到。如果你用其它標籤,或名字拼寫錯誤,app裡的按鈕將無法正常工作。


E.Hierarchy視窗,選擇Buttons >Button_Advance

F.Inspector 視窗,將Tag的屬性改為IncrementButton


G.下一步,將Button_Slideshow的標籤改為SlideshowButton,將Button_Decrement的標籤改為DecrementButton

H.儲存場景。

 

7)加入TextureCycler指令碼

A.Hierarchy視窗,選擇AppManager

B.Inspector視窗,找到Application Manager 部分並展開Texture Object 分支。

Texture Object 的屬性通知系統切換某個物件的材質。在這裡,我們需要Sphere_Inv的材質隨著點選按鈕而切換。

C.Hierarchy視窗,將Sphere_Inv拖到Element 0


D.Hierarchy視窗,選擇Sphere_Inv

E.Inspector視窗,點選Add Component按鈕並選擇Scripts > Texture Cycler。這一步指定了主場景中的起始材質,以及在slideshow模式下每張圖片顯示的時長。


 

8)建立TextureLoader物件

A.Hierarchy視窗,選擇Create > Create Empty

B.Inspector視窗,將這個空物件的名稱改為TextureLoader

這個物件告訴系統將哪些材質載入到AppManager Texture Object (在這裡,我們使用wSphere_Inv)

C.點選Add Component按鈕並選擇Scripts > Texture Loader

D.Texture Loader部分,展開MStartingTextures

App Manager Texture Object中的材質可以切換後,這個指令碼會先呼叫MStarting Textures (預設的大小為1)MStarting Textures中的材質都用過之後,Texture Loader會載入MLocal Storage Dir Path中的PNGJPG檔案。

E.MStarting Textures部分,將Size的數值改為3


F.Project視窗,開啟/Assets/Workshop/Textures資料夾。你可以看到一些字首為 “360” 的圖片 (e.g.360_BritishColumbia.jpg)。挑選三張圖片,把他們拖到三個Element的輸入框裡。


G.Texture Loader分支,找到MLocal Storage Dir Path並輸入以下路徑(必須完全按下面的路徑輸入)。這會告訴app你本地的360度圖片在哪裡。這裡app會在手機根目錄下找到名為 “Workshop”的資料夾。

/mnt/sdcard/Workshop/


說明:你需要在手機上建立Workshop 資料夾。可以開啟手機上的My Files應用,點選Device storage > Menu >CreateFolder,建立Workshop資料夾。如果你有360圖片想用這個app檢視,只要把圖片加到這個資料夾裡,app會自動到這個資料夾裡檢視。

H.儲存場景。

 

9)建立並執行這個應用

A.在選單中,選擇File > Build Settings…

B.Build Settings視窗,確認Scenes In Build中依次排列著以下兩個檔案:

Workshop/Scenes/Splash.unity(0)

Workshop/Scenes/Main.unity(1)

C.確認Platform設為AndroidTexture Compression設為ETC2 (GLES 3.0)

D.將手機用USB連線到電腦,並點選Build & Run按鈕。

E.Build Android對話方塊,給APK檔案取名並點選Save

F.Unity建立好app後,你會在手機上看到Insert device 對話方塊。這時可以斷開與電腦的連線,將手機插入Gear VR執行你的場景。

相關文章