一種虛擬資源的管理方法及系統與流程
2023-09-13 15:55:34 1
本發明涉及增強現實技術領域,尤其涉及一種虛擬資源的管理方法及系統。
背景技術:
增強現實技術將虛擬的信息疊加到真實世界中,被人類感官所感知,從而達到超越現實的感官體驗。虛擬的信息資源包括但不限於音頻、視頻、圖片、3D模型場景、文字、特效、UI,目前市面上大部分增強現實應用將虛擬資源一起發布到應用中,受制於移動端應用的大小限制以及行動裝置網絡、存儲空間的限制,這些增強現實應用中的虛擬資源無法擴展和更新,多個增強現實產品就需要發布多個增強現實應用,而且如果要更新虛擬資源就需要重新提交新版本到應用市場,通知用戶重新下載新版本,很不方便。
技術實現要素:
本發明所要解決的技術問題是提供一種虛擬資源的管理方法及系統。
本發明解決上述技術問題的技術方案如下:
一種虛擬資源的管理方法,所述管理方法包括:
S1:通過Unity提供的AssetBundle打包方法將Unity工程場景中的各種虛擬資源打包為不同的虛擬資源包,並給所有所述虛擬資源包添加配置文件,得到最終虛擬資源包;
S2:將所述最終虛擬資源包上傳到雲伺服器,將所述最終虛擬資源包的基本信息保存在所述雲伺服器的資料庫中,所述基本信息包括下載地址;
S3:根據所述資料庫中的所述下載地址下載所述最終虛擬資源包;
S4:解析所述最終虛擬資源包,得到所述配置文件和所有所述虛擬資源包,根據所述配置文件將所有所述虛擬資源包加載到所述Unity工程場景中並對所有所述虛擬資源包進行檢測更新。
本發明的有益效果是:本技術方案將虛擬資源與應用分離,作為一個個可供增強現實應用使用的模塊(即虛擬資源包),將這些虛擬資源包存儲在雲端,增強現實應用通過下載的方式來擴展虛擬資源;在需要更新增強現實應用中的虛擬資源時,更新雲端的虛擬資源包,增強現實應用中的舊虛擬資源包自動檢測更新並自動完成更新。
在上述技術方案的基礎上,本發明還可以做如下改進。
優選地,所述配置文件包括:每個所述虛擬資源包的名稱、標識號、創建日期、MD5校驗工具、文件大小以及更新方式;所述基本信息包括:所述最終虛擬資源包的名稱、上傳日期、MD5校驗工具、文件大小以及下載地址。
優選地,所述更新方式包括:
第一更新方式,對所述虛擬資源包定時檢測更新,設置檢測更新間隔時間和檢測更新地址;
第二更新方式,對所述虛擬資源包緩存失效後檢測更新,設置緩存時間和檢測更新地址;
第三更新方式,對所述虛擬資源包啟動時檢測更新,設置檢測更新地址。
優選地,所述配置文件的格式包括:txt文件格式或xml文件格式;所述最終虛擬資源包的格式為zip文件格式。
優選地,所述虛擬資源包括:音頻、視頻、圖片、3D模型、文字、特效以及UI界面。
一種虛擬資源的管理系統,所述管理系統包括:
打包模塊,用於通過Unity提供的AssetBundle打包方法將Unity工程場景中的各種虛擬資源打包為不同的虛擬資源包,並給所有所述虛擬資源包添加配置文件,得到最終虛擬資源包;
上傳模塊,用於將所述最終虛擬資源包上傳到雲伺服器,將所述最終虛擬資源包的基本信息保存在所述雲伺服器的資料庫中,所述基本信息包括下載地址;
下載模塊,用於根據所述資料庫中的所述下載地址下載所述最終虛擬資源包;
加載模塊,用於解析所述最終虛擬資源包,得到所述配置文件和所有所述虛擬資源包,根據所述配置文件將所有所述虛擬資源包加載到所述Unity工程場景中並對所有所述虛擬資源包進行檢測更新;
其中,所述打包模塊、所述上傳模塊、所述下載模塊和所述加載模塊依次連接。
優選地,所述配置文件包括:每個所述虛擬資源包的名稱、標識號、創建日期、MD5校驗工具、文件大小以及更新方式;所述基本信息包括:所述最終虛擬資源包的名稱、上傳日期、MD5校驗工具、文件大小以及下載地址。
優選地,所述更新方式包括:
第一更新方式,對所述虛擬資源包定時檢測更新,設置檢測更新間隔時間和檢測更新地址;
第二更新方式,對所述虛擬資源包緩存失效後檢測更新,設置緩存時間和檢測更新地址;
第三更新方式,對所述虛擬資源包啟動時檢測更新,設置檢測更新地址。
優選地,所述配置文件的格式包括:txt文件格式或xml文件格式;所述最終虛擬資源包的格式為zip文件格式。
優選地,所述虛擬資源包括:音頻、視頻、圖片、3D模型、文字、特效以及UI界面。
附圖說明
圖1為本發明的一種虛擬資源的管理方法的流程示意圖;
圖2為本發明的一種虛擬資源的管理系統的結構示意圖。
具體實施方式
以下結合附圖對本發明的原理和特徵進行描述,所舉實例只用於解釋本發明,並非用於限定本發明的範圍。
如圖1所示,一種虛擬資源的管理方法,管理方法包括:
S1:通過Unity提供的AssetBundle打包方法將Unity工程場景中的各種虛擬資源打包為不同的虛擬資源包,並給所有虛擬資源包添加配置文件,得到最終虛擬資源包;
S2:將最終虛擬資源包上傳到雲伺服器,將最終虛擬資源包的基本信息保存在雲伺服器的資料庫中,基本信息包括下載地址;
S3:根據資料庫中的下載地址下載最終虛擬資源包;
S4:解析最終虛擬資源包,得到配置文件和所有虛擬資源包,根據配置文件將所有虛擬資源包加載到Unity工程場景中並對所有虛擬資源包進行檢測更新。
上述實施例中,通過Unity提供的AssetBundle打包方法將Unity工程場景中的各種虛擬資源打包為不同的虛擬資源包,由於AssetBundle無法將c#腳本編譯成個各平臺可識別的資源,因此通過集成各平臺可編譯的lua腳本,將lua腳本打包進資源包中以完成腳本的熱更新,然後編寫統一的資源解析配置文件config.xml,配置虛擬資源在場景中的生命周期和交互以及更新邏輯等,將相應的配置文件和所有虛擬資源包打包為單個zip文件,即最終虛擬資源包;將最終虛擬資源包上傳到雲伺服器,將最終虛擬資源包的下載地址保存在雲伺服器的資料庫中;根據資料庫中的下載地址下載相應的最終虛擬資源包;解析最終虛擬資源包,獲取配置文件和所有虛擬資源包,根據配置文件將所有虛擬資源包加載到Unity工程場景中並對所有虛擬資源包進行檢測更新。
目前大部分增強現實應用是將虛擬資源集成在單個Unity程序中,由於虛擬資源豐富的動畫場景效果會佔用較大空間,因此往往單個Unity應用能使用的虛擬資源數量受到制約;本技術方案為了解除這個限制,將虛擬資源解耦合,模塊化,並通過雲服務來實現虛擬資源數目的無限擴展。
腳本的熱更新處理方法具體包括:給unity中GameObject(遊戲對象)添加一個C#腳本組件作為中間層,在中間層上綁定一個LUA腳本,將Unity的所有回調接口通過中間層傳遞到LUA,同時,LUA腳本也可以通過中間層操作GameObject;因為LUA腳本可以在各平臺被識別,所以可以通過LUA腳本完成在不更新Unity應用的情況下,更新資源的遊戲邏輯。
由於Unity中AssetBundle資源打包方式無法將C#腳本以可讀的形式集成到AssetBundle資源包中,因此如何實現在不更新Unity程序的情況下更新虛擬資源的運行邏輯是一個待解決的難題;為了解決這個熱更新難題,本方法集成了可被各平臺識別的LUA腳本到虛擬資源包中,通過c#程序方法和LUA程序方法的映射方式達到更新虛擬資源包來更新應用運行邏輯的目的。
虛擬資源包括:音頻、視頻、圖片、3D模型、文字、特效以及UI界面,在Unity平臺中將這些種類的美術資源導出為通用的美術資源包,將建立好的Unity遊戲場景導出為通用的場景資源包。
配置文件包括:虛擬資源包的名稱、標識號、創建日期、MD5校驗工具、文件大小以及更新方式;基本信息包括:最終虛擬資源包的名稱、上傳日期、MD5校驗工具、文件大小以及下載地址。配置文件的格式包括:txt文件格式或xml文件格式;最終虛擬資源包的格式為zip文件格式。
更新方式包括三種更新方式,其中,第一更新方式,對虛擬資源包定時檢測更新,設置檢測更新間隔時間和檢測更新地址;第二更新方式,對虛擬資源包緩存失效後檢測更新,設置緩存時間和檢測更新地址;第三更新方式,對虛擬資源包啟動時檢測更新,設置檢測更新地址。
如圖2所示,一種虛擬資源的管理系統,管理系統包括:
打包模塊1,用於通過Unity提供的AssetBundle打包方法將Unity工程場景中的各種虛擬資源打包為不同的虛擬資源包,並給所有虛擬資源包添加配置文件,得到最終虛擬資源包;
上傳模塊2,用於將最終虛擬資源包上傳到雲伺服器,將最終虛擬資源包的基本信息保存在雲伺服器的資料庫中,基本信息包括下載地址;
下載模塊3,用於根據資料庫中的下載地址下載最終虛擬資源包;
加載模塊4,用於解析最終虛擬資源包,得到配置文件和所有虛擬資源包,根據配置文件將所有虛擬資源包加載到Unity工程場景中並對所有虛擬資源包進行檢測更新;
其中,打包模塊1、上傳模塊2、下載模塊3和加載模塊4依次連接。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。