【三星官方教程】如何為Gear VR開發應用(五):新增功能
現在兩個場景都已經制作完成,可以在照片檢視器中加入一些功能了。這個應用中使用射線系統,從鏡頭髮出射線,與場景中的物件發生碰撞。碰撞會檢測到某些標記,從而通知系統執行一些特定的動作。這個應用裡的主要功能包括前進,後退功能,以及播放幻燈。
在這期教程中,你將學到:
·建立射線以觸發某個按鈕
·建立一個用來瞄準按鈕的準星
·建立一個物件,用來管理使用者的輸入,比如點選或觸控
·建立一個物件,當某個按鈕被觸發後,通知應用迴圈播放一系列不同的背景
·建立並實施物件的標籤
·用指令碼控制迴圈播放的屬性,如時長和模式
·將圖片載入球面
·在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。這樣可以把物件放在 (0,0,0)。
E.在Project視窗,開啟/Assets/Workshop/Textures資料夾,把Reticle檔案拖到Inspector視窗中的Sprite Renderer > Sprite輸入框。
F.在Transform部分,將Position的Z設為5。準星因位於播放幻燈按鈕的正前方。
G.將Scale的s X,Y,和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的屬性會在on和off 間切換。
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
說明:IncrementButton,DecrementButton,和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中的PNG和JPG檔案。
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設為Android,Texture Compression設為ETC2 (GLES 3.0)。
D.將手機用USB連線到電腦,並點選Build & Run按鈕。
E.在Build Android對話方塊,給APK檔案取名並點選Save。
F.Unity建立好app後,你會在手機上看到Insert device 對話方塊。這時可以斷開與電腦的連線,將手機插入Gear VR執行你的場景。
相關文章
- 三星致力Gear VR新品研究 同時開發AR裝置VR
- 三星Gear VR上手體驗評測:功能完善做工精緻VR
- 三星Gear VR和LG 360 VR區別對比評測VR
- 三星新一代Gear VR釋出! 智慧穿戴市場如何?VR
- 三星升級VR網頁瀏覽器 Gear VR使用者福音VR網頁瀏覽器
- 三星Gear VR將增加追蹤技術 專利曝光!VR
- 傳三星將於本月23日釋出新款Gear VRVR
- Oculus和Gear VR新功能 可分享朋友圈?VR
- VR開發教程:Unity開發VR眼鏡中文入門教程四VRUnity
- 虛幻4引擎Gear VR開發入門(上)VR
- 虛幻4引擎Gear VR開發入門(下)VR
- 三星Gear VR最大亮點:將實現手勢追蹤VR
- Xamarin開發教程如何使用Xamarin開發Android應用Android
- 三星Gear Fit 2再曝光:監測功能強大
- 三星Gear VR國行版釋出? 價格1000元以上!VR
- 三星Gear VR新品曝光 伴隨S8一起釋出?VR
- Word實用教程——五分鐘教你如何在任意頁開始新增頁碼
- Windows App 應用開發教程WindowsAPP
- Swift如何在應用中新增圖示更換功能Swift
- 三星gear fit2pro怎麼測量心率?三星gear fit2pro測量心率的方法教程
- OPENVINO官方開發進階教程
- iOS 11開發教程(十四)iOS11應用程式碼新增檢視iOS
- 三星gear fit 2深度解析測評 三星gear fit 2怎麼樣?
- Xamarin Android教程如何使用Xamarin開發Android應用Android
- 使用 larainvite 為 Laravel 5.3 應用新增邀請註冊功能AIViteLaravel
- iOS 11開發教程(十三)iOS11應用編輯介面新增檢視iOS
- 微軟官方:為開發者減少開發成本,Edge 將採用 Chromium 開發微軟
- SAP UI5 應用開發教程之四十八 - 如何在 SAP UI5 應用裡開發條形碼掃描功能試讀版UI
- 三星Gear S2智慧手錶新系統曝光 可獨立下載應用
- 三星推出VR家居應用VuildUs,也玩起了實時建模VRUI
- 三星Gear S3智慧手錶的功能這下更全了S3
- Web應用程式開發五步法Web
- 三星Gear Fit 2健身腕帶和IconX藍芽耳機官方渲染圖曝光藍芽
- Yeoman官方教程:用Yeoman和AngularJS做Web應用AngularJSWeb
- Laravel wallet ,如何快速開發出一個錢包功能的應用?Laravel
- 如何快速開發SPA應用
- 使用Xamarin開發移動應用示例——數獨遊戲(三)新增回退和計時功能遊戲
- 三星下一代智慧手錶Gear Fit將加入防水功能