【三星官方教程】如何為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 fit2pro怎麼測量心率?三星gear fit2pro測量心率的方法教程
- 三星推出VR家居應用VuildUs,也玩起了實時建模VRUI
- OPENVINO官方開發進階教程
- SAP UI5 應用開發教程之四十八 - 如何在 SAP UI5 應用裡開發條形碼掃描功能試讀版UI
- 三星Gear S4智慧手錶:支援LTE,全新金色配色
- Android之五大應用開發框架Android框架
- 微軟官方:為開發者減少開發成本,Edge 將採用 Chromium 開發微軟
- Android Jetpack - Android TV 應用開發教程AndroidJetpack
- Laravel wallet ,如何快速開發出一個錢包功能的應用?Laravel
- 向React Native應用新增螢幕捕捉功能React Native
- 聯易融成為BSN合格開發者,供應鏈金融平臺入選官方指定應用
- 使用Xamarin開發移動應用示例——數獨遊戲(三)新增回退和計時功能遊戲
- AI大模型企業應用實戰(25)-為Langchain Agent新增記憶功能大模型LangChain
- 利用指紋識別或面部識別,為應用新增私密保護功能
- 直播APP系統開發應該有哪些功能,如何開發?APP
- 2019最新《Python安全工具開發應用教程》Python
- 如何讓軟體開發從功能測試轉入應用測試?
- 微軟開發神祕新應用 Designer ,或為 PowerPoint 功能升級版?微軟
- 官方翻譯 | 有關基於文件的iOS應用開發iOS
- Windows環境中,為自己的應用新增發行者證書Windows
- Rust如何開發eBPF應用?(一)RusteBPF
- 小教程:如何開啟 Mac 應用程式防火牆Mac防火牆
- 如何在SAP UI5應用裡新增使用攝像頭拍照的功能UI
- 使用 Laravel Sail 新增和開發 Laravel Octane 應用(相容 Debug)LaravelAI
- 亞馬遜雲科技推出五項Amazon SageMaker新功能,助力規模化開發應用模型亞馬遜模型
- 為網頁新增留言功能網頁
- 如何開啟Win10日曆應用_ win10日曆應用開啟教程Win10
- 如何快速開發一款應用
- 開發Web應用為什麼要用TypeScript?WebTypeScript
- Go 官方出品泛型教程:如何開始使用泛型Go泛型
- Substrate 區塊鏈應用開發之存證模組的功能開發區塊鏈
- 是否有應用onethink開發web的詳細教程Web
- 使用Solidity開發區塊鏈dApp應用教程 - oliverSolid區塊鏈APP
- MyEclipse持續性開發教程:用JPA和Spring管理資料(五)EclipseSpring
- Python開發的入門教程(五)-setPython
- Oracle閃回技術 概覽 應用程式開發功能Oracle
- AdMob 原生廣告全面開放,官方教程看完就會用
- VR消防安全應用方案,VR消防內容軟體VR
- Android探索之旅 | 為應用新增角標(Badge)Android