1 創(chuàng)建unity項(xiàng)目
1.1 打開Unity Hub
打開unity Hub,先點(diǎn)擊左側(cè)項(xiàng)目一欄,再點(diǎn)擊右上角的新項(xiàng)目,彈出創(chuàng)建窗口后,選擇URP模板,自定義項(xiàng)目名稱和位置,取消勾選版本管理,最后點(diǎn)擊創(chuàng)建項(xiàng)目即可(注意:我這里的unity版本為2020.3.37f1c1 LTS)。
1.2 創(chuàng)建項(xiàng)目
點(diǎn)擊創(chuàng)建項(xiàng)目后,第一次創(chuàng)建項(xiàng)目時(shí),需等待一段時(shí)間加載,項(xiàng)目初始頁面如下
2 配置項(xiàng)目
2.1 配置插件,導(dǎo)入SDK
1、點(diǎn)擊windows下的Package Manager,按照圖示步驟,下載安裝XR Interaction Toolkit和XR Plugin Management 兩個(gè)插件(插件在安裝完畢后會重啟項(xiàng)目,不要慌),其中在安裝XR Interaction Toolkit時(shí),會有一個(gè)彈框出現(xiàn),點(diǎn)yes->no thanks即可,引入starter assets資源(該demo中含有已經(jīng)配置好了的vr手柄參數(shù))。
2、按照如下圖示的步驟,點(diǎn)+,再點(diǎn)擊從本地磁盤導(dǎo)入的方式導(dǎo)入pico的SDK,picoSDK的下載點(diǎn)這里跳轉(zhuǎn)。
2.2 搭建場景
1、先右鍵刪除項(xiàng)目自帶的Main Camera,因?yàn)樽詭У南鄼C(jī)在VR設(shè)備(如pico4)中是看不到任何東西的,需要用XR下的攝像機(jī),在項(xiàng)目的空白區(qū)域右鍵,選擇XR下的XR Origin(VR)。
2、最關(guān)鍵的一步來了,點(diǎn)開我們剛開始import的starter assets資源(在Samples的XR Interaction Toolkit下),將XRI Default Left Controller左鍵摁住不松手,把他拖拽到LeftHand Controller的XR Controller(Action-base)上松開即可,同理,將XRI Default Right Controller拖拽到RightHand Controllerd的XR Controller(Action-base)上松開即可。這一步是把官方提供的demo中配置好的手柄參數(shù)直接拿來用,不用從0開始寫一份腳本,節(jié)約時(shí)間。
2.3 編寫腳本
1、在Project窗口下,右鍵Scripts目錄,create->C# Script,腳本名稱自定義,我這里叫SceneSwitch,雙擊打開進(jìn)行編輯,
代碼如下,
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class SceneSwitch : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void jump0()
{
SceneManager.LoadScene(0);//跳轉(zhuǎn)到場景SampleScene
}
public void jump1()
{
SceneManager.LoadScene(1);//跳轉(zhuǎn)到場景Scene1
}
public void jump2()
{
SceneManager.LoadScene(2);//跳轉(zhuǎn)到場景Scene2
}
}
2、新建場景,右鍵Scene目錄,create->Scene,創(chuàng)建兩個(gè)新的空場景Scene1和Scene2,雙擊Scene1,在Scene1中添加一個(gè)正方體,具體操作:在HIerarchy窗口下,右鍵空白區(qū)域,3D Object->Cube即可,用于區(qū)分兩個(gè)場景。(這兩個(gè)場景都需要重復(fù)2.2的步驟)
2.4 PICO項(xiàng)目配置
2.4.1 實(shí)現(xiàn)思路
為了切換場景,我們需要借助一個(gè)東西來實(shí)現(xiàn)這個(gè)功能,我這里采用的如下思路,
在XR Origin的Main Camera下創(chuàng)建一個(gè)Canvas,在上邊創(chuàng)建一些UI組件,如可以與VR手柄射線交互的button組件,以及可用于文字展示的text組件,然后再將2.3中的腳本掛載到這些button上去,在VR環(huán)境下用手柄射線點(diǎn)擊該button,button便執(zhí)行掛載上邊的對應(yīng)腳本功能,即可實(shí)現(xiàn)場景切換的功能。(在XR Origin的Main Camera下創(chuàng)建一個(gè)Canvas的目的是為了讓該UI界面不隨著vr設(shè)備視野的變化而變化,讓其始終保持在視野前方固定不變)
2.4.1 實(shí)現(xiàn)步驟
1、創(chuàng)建Button(創(chuàng)建Button的同時(shí)自動創(chuàng)建了Canvas),步驟見下
2、重命名該button為down,意為切換到下一個(gè)場景,并調(diào)整Button的位置和大?。ㄒ部筛鶕?jù)個(gè)人喜好自行調(diào)整),步驟如下,
2.1、將button拖拽到左下角
2.2修改其屬性,如下
3、掛載腳本到Canvas上,步驟如下
4、將加載下一個(gè)場景的函數(shù)jump1掛載到down按鈕上,如下
5、至此,我們就實(shí)現(xiàn)了一個(gè)切換到下一個(gè)場景的功能了,同理,我也可以安裝上述步驟,添加一個(gè)up按鈕(切換到上一個(gè)場景),步驟同上,只需修改在函數(shù)為jump2即可。
我們在Scene1和Scene2中重復(fù)同樣的操作即可完成3個(gè)場景的循環(huán)切換,即SampleScene->Scene1->Scene2->SampleScene->Scene1->Scene2->SampleScene->…
3 項(xiàng)目打包和運(yùn)行部署
3.1 PICO項(xiàng)目運(yùn)行環(huán)境配置
這一步的配置是pico官方提供的項(xiàng)目配置,以保證你的應(yīng)用能成功接入 XR 能力,完成構(gòu)建并在 PICO 設(shè)備上正常運(yùn)行。具體詳細(xì)步驟見pico官方文檔的快速開始,點(diǎn)這里跳轉(zhuǎn)。(其中第四步和第五步可不用配置)
3.2 打包運(yùn)行
可以按照如下步驟進(jìn)行打包運(yùn)行,也可以參考官方提供的運(yùn)行示例,點(diǎn)這里跳轉(zhuǎn)。
場景創(chuàng)建完畢后,讓我們將其打包為可在 PICO 設(shè)備上運(yùn)行的應(yīng)用(即 .apk 文件)。
第一步:切換開發(fā)平臺
PICO XR 應(yīng)用的目標(biāo)編譯平臺是安卓平臺。
1、從上方菜單欄處,選擇 File > Build Settings。
2、在 Build Settings 窗口中,從 Platform 列表處選擇 Android。
3、點(diǎn)擊 Switch Platform。若該按鈕變?yōu)?Build,表示平臺切換成功。
第二步:打包并運(yùn)行場景
使用 Unity 編輯器自帶的 Build 工具將 XR 場景構(gòu)建為可在 PICO 設(shè)備上運(yùn)行的 APK 文件。步驟如下:
1、使用 USB 數(shù)據(jù)線連接 PICO 設(shè)備和 PC。
2、在 Build Settings 窗口中,點(diǎn)擊 Add Open Scenes 將 SampleScene 添加為待構(gòu)建場景。再點(diǎn)擊Scene1/Scene2,切換到該場景后,F(xiàn)ile->Building Settings,再點(diǎn)擊Add Open scenes,將該場景添加到接下來打包后的apk文件中去。
3、將 Run Device 設(shè)置為 All Compatible Devices 或與 PC 連接的 PICO 設(shè)備的型號。
4、點(diǎn)擊 Build And Run。你將看到 Build Android 窗口。
5、選擇 APK 文件的存儲位置。Unity 開始編譯應(yīng)用。編譯完成后,PICO 設(shè)備將自動運(yùn)行該 APK 文件。文章來源:http://www.zghlxwxcb.cn/news/detail-692654.html
4 結(jié)語
本文主要是之前實(shí)驗(yàn)室的一個(gè)VR小項(xiàng)目所用到的技術(shù),為了方便實(shí)驗(yàn)室的學(xué)弟學(xué)妹們后續(xù)接手,特寫下此篇文章以作參考學(xué)習(xí),關(guān)于本項(xiàng)目的一些后續(xù)技術(shù),如優(yōu)化模型、調(diào)整場景地平面高度和UI面板分布、美化VR場景以及實(shí)現(xiàn)多設(shè)備間跨語言通信(基于udp/tcp通信)。服務(wù)端(發(fā)送/接收數(shù)據(jù)):PC端、pico4,電腦客戶端(發(fā)送/接收數(shù)據(jù),并以圖形可視化的形式展示數(shù)據(jù)),我會陸續(xù)產(chǎn)出相應(yīng)的文章。
如遇問題,請?jiān)谠u論區(qū)積極留言,看到就會回復(fù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-692654.html
到了這里,關(guān)于Unity基于PICO4設(shè)備實(shí)現(xiàn)VR下的多場景切換(巨詳細(xì),案例全csdn僅此一家)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!