LuaFramework_UGUI的熱更新簡單實現和無法熱更新的解決方案(六)

本篇博客主要講述用LuaFramework簡單實現熱更新的方法,和熱更新時遇到的巨大的坑。
一般我們在用LuaFramework進行熱更新的時候,通常時把AppConst的更新模式打開,然後LuaFramework-Bulid xxx Resource 打下包,發佈一下。然後在需要熱更新時修改下界面,在LuaFramework-Bulid xxx Resource打下包,把新的StreamingAssets放到服務器上,這樣客戶端只要啓動,就實現了熱更新了吧。
但是,肯定也有人遇到過熱更新不成功的問題吧。
很巧的是博主恰巧遇到了這種問題,無論怎麼更新修改界面,打包,放到服務器上,卻還是發現客戶端和原來是一個樣子。後來我開始一路瘋狂進行排查有可能出現錯誤的問題,首先,第一個,版本文件,發現版本文件也是改變了,所以版本文件並沒有任何問題。接着我開始排查是不是因爲解壓出現的問題,幸運的是,解壓也沒有任何問題。所以我就斷定是下載的問題,肯定是下載沒有下載到,畢竟LuaFramework是通過www進行熱更新文件載的。果然,這個BUG我還是沒有找到,此時的心中一萬隻喫草的馬路過,崩潰至極。但我還是壓制住了那顆想要砸鍵盤的狂躁之心。對,這個時候我該冷靜,我該靜下心去仔細想想BUG的最終去路。忽然,在地獄與死亡的交接點我彷彿看到了一道光,那種心情,我恍然大悟,既然版本文件沒問題,下載也進行下載了,說明文件是完整的,唯一可能出現問題的就是讀取文件錯誤,造成解壓錯誤,直至熱更新失敗。
所以我就開始在路徑上下功夫,功夫不負有心人。我終於找到了Bug所在之處,就是因爲LuaFramework框架默認的讀取的路徑出了錯
如下圖:
在這裏插入圖片描述
黑色箭頭所指的路徑是他自動讀取的路徑,後來被我修改成紅色箭頭所指的路徑。
至此,無法熱更新完美解決。
那麼,黑色路徑所指向的地址是哪呢?
答案就是下圖種的路徑,在我們發佈時同時會有一給文件夾,客戶端每次解壓都是解壓在發佈是同exe一起的文件裏的
StreamingAssets,所以,在我們每次啓動客戶端時,他讀取的一直是這個文件,造成成我們熱更新失敗。
所以,我把路徑改爲上圖的路徑時,熱更新失敗就問題就完美解決。

在這裏插入圖片描述

所以下面讓我們進行快樂的熱更新吧。

1.首先把我們的熱更新模式打開,並且修改一下測試更新地址,地址是服務器上的地址,不要錯。

在這裏插入圖片描述

2.接着點擊LuaFramework-Bulid xxx Resource 打下包,發佈一下,發佈出來會有一個Data文件夾和以個exe,我們打開自己的服務器,這裏博主用的是ftp服務器,接着我們運行exe客戶端。客戶端就長這樣子。

在這裏插入圖片描述
3.
3.1 接下來我們在LoginPanel上隨便創建一個Image。創建完成之後Apply一下。
3.2 然後LuaFramework-Bulid xxx Resource 打下包,打包完成不要發佈。
3.3 在Assets中找到StreamingAssets文件夾,右鍵Show in Explorer打開文件所在路徑,把服務器上原來的StreamingAssets文件刪除,把現在已經打包好的StreamingAssets文件夾放在上面,啓動客戶端。
在這裏插入圖片描述

這時我們會發現,在沒有經過重新發布的前提下,我們LoginPanel界面多了一張Image。
此時,熱更新成功!
所以,在我們的程序出現BUG時,一定不要狂躁,要靜下心來,細細去排,不要放過一點可能。這樣我們的程序才能更加健壯,我們的代碼才能跑起來。

努力積才能,壹葉便成名!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章