使用React 360創(chuàng)建虛擬現(xiàn)實體驗
今天分享的內(nèi)容是使用JavaScript創(chuàng)建虛擬現(xiàn)實體驗。
正文
使用React的虛擬現(xiàn)實(VR)體驗?😮
這真的可能嗎?是的,隨著React 360的引入,現(xiàn)在可以用JavaScript來創(chuàng)建虛擬現(xiàn)實體驗。
現(xiàn)實中是如何使用VR的
在看什么是React 360之前,讓我快速回顧一下現(xiàn)在的設(shè)備是如何使用VR的。目前,VR是一個趨勢性的話題,大多數(shù)游戲和娛樂都專注于VR,以提供一個特殊的用戶體驗。
React 360的引入為未來UI的廣泛采用帶來了希望,從字面上看,它為現(xiàn)代網(wǎng)絡(luò)應(yīng)用提供了3D和VR體驗。
等不及啦,讓我們深入了解一下。
什么是React 360?
React 360是一個框架,用于創(chuàng)建在網(wǎng)絡(luò)瀏覽器中運行的交互式360體驗。
https://www.npmjs.com/package/react-360
這是一個NPM包,可以按以下方式安裝。
- npm i react-360
- // Command line tool
- npm install -g react-360-cli
它與React和React Native非常相似,但有一些區(qū)別,有利于構(gòu)建VR體驗。
它使用three.js來促進低級別的WebVR(訪問VR設(shè)備)和WebGL(渲染3D圖像)API,以便在瀏覽器上創(chuàng)建一個VR體驗。
如果你以前有React和React Native的經(jīng)驗,使用React 360會比較容易。
此外,如果你用React 360創(chuàng)建一個新的項目,在你的項目中有三個文件是非常重要的。
- index.js - 你的應(yīng)用程序的主要代碼,并將包含代碼/文件導(dǎo)入,這將決定你的應(yīng)用程序的外觀和感覺。
- client.js - 這個文件是連接你的瀏覽器和React應(yīng)用程序的Runtime。這個文件中的代碼將創(chuàng)建一個新的React 360實例,加載你的React代碼并將其附加到DOM中的一個特定位置。
- index.html - 你將加載的網(wǎng)頁。這將指向JavaScript代碼來裝載你的應(yīng)用程序。
此外,static_assets文件夾用于存儲資源,包括圖片、全景圖、音頻文件和其他將被用于增強網(wǎng)絡(luò)體驗的外部內(nèi)容。
Runtime負責將你的React組件變成屏幕上的3D元素。
在實踐中使用React 360
一旦你成功地安裝了React 360,你就可以用下面的命令初始化一個新項目。
- react-360 init new-react-360-app
這將創(chuàng)建一個名為new-react-360-app的新項目目錄,并將安裝所有需要的依賴項。
項目的結(jié)構(gòu)將如下所示:
項目目錄
你可以使用npm start命令啟動該項目。你的瀏覽器上的輸出將可以在http://localhost:8081/index.html。
npm start
你可以使用你的鼠標指針來360度導(dǎo)航這個框架。React 360框架的一個重要特點是,它帶有可重復(fù)使用的內(nèi)置UI組件。
例如,其中一些組件如下:
- View
- Image
- Entity
- VrButton
這些可以在你開發(fā)React 360應(yīng)用程序時使用。
在我之前提到的重要的三個文件中,index.js和index.html是非常簡單的。
讓我們看一下client.js文件,以便更好地了解它的內(nèi)容。
client.js file in React 360 project
在這里,root 被r360.createRoot設(shè)置為index.js中的hello_vr React組件。
React 360的特點
- React 360有許多有用的功能。讓我們看一下其中的幾個:
跨平臺開發(fā)
- 有了React 360,一個React開發(fā)者就可以創(chuàng)建在桌面、手機和網(wǎng)絡(luò)上運行的VR應(yīng)用程序,而不需要用不同的語言和技術(shù)編寫很多代碼,從而節(jié)省開發(fā)成本和精力。
用像素工作
- React 360使開發(fā)者能夠創(chuàng)建嵌入3D空間的2D界面。React 360的Surfaces庫允許將UI面板集成到應(yīng)用程序中。Surfaces將允許開發(fā)者用像素而不是其他測量單位來開發(fā)環(huán)境,并使用傳統(tǒng)工具實現(xiàn)所創(chuàng)建的規(guī)格。
3D媒體支持
- React 360的環(huán)境功能對沉浸式媒體有更好的處理。有了這個,開發(fā)者將對應(yīng)用程序的外觀和感覺進行精確控制。
增強的性能
- 運行時架構(gòu)旨在通過提高幀率和減少垃圾收集來優(yōu)化整個應(yīng)用程序的性能。
支持的設(shè)備
主要的有以下的設(shè)備:
- 桌面網(wǎng)絡(luò)瀏覽器(Chrome、Firefox等)。
- 移動網(wǎng)絡(luò)瀏覽器
- VR設(shè)備
最后
React 360是一種有趣的方式來創(chuàng)建3D網(wǎng)絡(luò)應(yīng)用,給用戶帶來VR體驗。這是一個開源的框架,因此在構(gòu)建VR應(yīng)用方面具有成本效益。
任何有React經(jīng)驗的開發(fā)者都可以輕松地學習這個框架,并立即開始構(gòu)建VR應(yīng)用。React VR應(yīng)用程序支持廣泛使用的設(shè)備和平臺,包括iOS和Android。