[發明專利]基于Unity引擎的網絡圖片加載方法、裝置及介質有效
| 申請號: | 202210856964.0 | 申請日: | 2022-07-20 |
| 公開(公告)號: | CN115225623B | 公開(公告)日: | 2023-08-29 |
| 發明(設計)人: | 段凌云;何柯慶;唐進;陳正超 | 申請(專利權)人: | 貴陽語玩科技有限公司 |
| 主分類號: | H04L67/02 | 分類號: | H04L67/02;H04L67/568;H04L9/06;G06F16/955 |
| 代理公司: | 杭州研基專利代理事務所(普通合伙) 33389 | 代理人: | 劉然 |
| 地址: | 550081 貴州省貴陽市貴陽國家高新技術*** | 國省代碼: | 貴州;52 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 unity 引擎 網絡 圖片 加載 方法 裝置 介質 | ||
本申請提供一種基于Unity引擎的網絡圖片加載方法、裝置及介質,通過將網絡圖片加載請求轉到程序中使用HttpListener開辟的HTTP服務,以在HTTP服務線程完成緩存的校驗和文件下載,解決了UnityWebRequest下載的圖片無法緩存的問題。結合DownloadHandlerTexture可以在工作線程解碼圖片的特性,完美避免了在主線程執行緩存校驗帶來的URL編碼耗時操作及文件數據I/O耗時操作,也避免了主線程對圖片解碼帶來的CPU耗時操作,從而支持隨時高效加載并緩存高清網絡圖片。
技術領域
本申請涉及軟件開發技術領域,具體而言,涉及一種基于Unity引擎的網絡圖片加載方法、裝置及介質。
背景技術
Unity引擎是一個較為流行的跨平臺3D引擎,引擎通過主線程不斷刷新畫面實現運動的展示,每秒刷新的畫面次數越多(即FPS,每秒傳輸幀數),運動的畫面越流暢,常見的FPS檔位有30、60、90、120。以60FPS為例,要達到該幀數,每一幀的代碼執行時間不能超過16.66毫秒。同時Unity引擎為了避免線程安全問題,幾乎所有API(應用程序接口)只能在主線程調用,其中就包括圖片(2D紋理)的加載API。
一張圖片的加載分為兩個核心階段,首先將文件二進制數據讀取進內存,其次在內存中對二進制數據進行解碼。從文件系統上將圖片文件二進制數據讀入內存屬于耗時操作(I/O密集型),在內存中對圖片進行解碼也屬于耗時操作(CPU密集型)。圖片越高清,總像素數越多,文件所占的大小也越大,二進制數據載入內存與解碼的時間也越長。
Unity引擎讀取并解碼圖片的API只能在主線程調用,如果主線程執行代碼耗時超過1幀最大時長,則畫面就會掉幀,運動圖像的視覺效果與操作就會變卡,降低或避免主線程在這兩個階段耗費過多時間將使得畫面更加流暢。如果這張圖片并不在本地,是放在網絡服務器上,還需要增加額外的圖片下載時長,如果一張圖片需要頻繁顯示,重復的下載既慢且浪費用戶網絡流量。
無論使用什么引擎開發,游戲加載網絡圖片,基本都是在進入游戲前提前下好所有資源,在加載場景的界面等待圖片加載、解碼,加載完成后進入場景直接顯示。
Unity中加載網絡圖片,可以使用UnityWebRequest進行動態按需加載圖片,該API可以下載網絡圖片,并在引擎內部工作線程(不對外公開)中進行圖片解碼,不阻塞主線程,解碼完成后得到紋理對象用來顯示。但是該API無法對下載的圖片進行緩存,每次顯示同樣的圖片都需要重新下載,會浪費許多流量。
如果自行編寫下載服務實現緩存,則需要對URL進行規則化定長編碼,作為文件名進行保存、查找,但每次對URL進行編碼需要消耗主線程執行時間。而加載和解碼目前有兩種方案,第一種是調用WWW類的LoadImageIntoTexture方法加載圖片,但該方案會導致在主線程執行加載和解碼而阻塞主線程。第二種是在子線程讀取文件二進制數據到內存形成字節數組,主線程調用Texture2D類的LoadImage方法加載,這種方案雖然在文件加載時不阻塞主線程,但會因為必須在主線程解碼而阻塞主線程。
發明內容
本申請實施例的目的在于提供一種基于Unity引擎的網絡圖片加載方法、裝置及介質,以避免URL編碼耗時,避免同一個文件重復下載,避免文件加載到內存及解碼阻塞主線程,實現高效加載并緩存高清網絡大圖。
為了實現上述目的,本申請的實施例通過如下方式實現:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于貴陽語玩科技有限公司,未經貴陽語玩科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210856964.0/2.html,轉載請聲明來源鉆瓜專利網。





