最初我們游戲是在載入的loading界面將所有資源進(jìn)行加載,這樣導(dǎo)致游戲啟動的時(shí)候加載使用了相當(dāng)長的時(shí)間穆桂,為了優(yōu)化這塊,進(jìn)行了以下幾點(diǎn)優(yōu)化:
1.刪除游戲內(nèi)多余的資源
2.將資源打包成大圖
3.將游戲場景內(nèi)的資源game提出,不要放在texture目錄下,然后在游戲進(jìn)入大廳場景的時(shí)候锐借,再去加載游戲內(nèi)的資源,并且設(shè)置一個(gè)全局的標(biāo)識符往衷,只有當(dāng)game加載完成钞翔,標(biāo)識符才設(shè)置為true。在各個(gè)進(jìn)入游戲場景之前席舍,對標(biāo)識符進(jìn)行判斷嗅战,不是true就return,并且畫出一個(gè)loading的界面顷编,告知玩家该窗。
下面是開始游戲的時(shí)候加載資源的代碼:
var self = this;
cc.loader.loadResDir("texture", function (completedCount, totalCount, item) {
// console.log("completedCount:" + completedCount + ",totalCount:" + totalCount );
if (self.isLoading) {
self.pregress = completedCount / totalCount;
}
},
function (err, assets) {
self.onLoadComplete();
cc.loader.onComplete = null;
self.isLoading = false;
});
由于網(wǎng)速太慢赫舒,會有進(jìn)入微信小游戲之后不能立刻顯示loading界面的問題, 這個(gè)問題目前只有在loading界面之前再增加一個(gè)只有l(wèi)oading背景圖的界面东且,并且這個(gè)資源打包放入到上傳到微信4M包中。這樣本讥,網(wǎng)速慢的手機(jī)也就不會有黑屏產(chǎn)生而是卡在背景圖的界面珊泳。但是這個(gè)問題是每次上傳包的時(shí)候都要手動去保留res目錄和它下面的這個(gè)背景圖的資源,還有相關(guān)調(diào)用到的json文件拷沸。
----------------假裝解決的分割線----------------
策劃認(rèn)為目前進(jìn)入到大廳還是有些慢色查,今天再次對這個(gè)情況進(jìn)行如下的優(yōu)化:
1.大廳內(nèi)的二級功能界面全部制作成預(yù)制體,并且通過動態(tài)加載的方式去調(diào)用撞芍,而不是用編輯器拖拽的方式去調(diào)用秧了。
2.把大廳第一眼能顯示的內(nèi)容資源提出新命名一個(gè)beforeLoading,這一塊內(nèi)容放在loading場景去加載序无。texture剩余的部分和game文件夾一同在進(jìn)入大廳之后在加載验毡。
3.將大廳使用到的所有龍骨動畫進(jìn)行處理,只有調(diào)用到的時(shí)候再去進(jìn)行加載帝嗡,而不是用編輯器拖拽的方式去調(diào)用晶通。
----------------作死的分割線----------------
策劃要求和途游的棋牌載入速度保持一致。哟玷。狮辽。意思是不能有l(wèi)oading場景也不能有黑屏出現(xiàn)。
為了完成這一需求巢寡,刪除了loading場景喉脖,所有的邏輯放到大廳,打包大廳的首場景資源為一個(gè)大圖加入4M資源讼渊,然后登陸完成之后進(jìn)入大廳加載剩余大廳二級界面的資源和游戲內(nèi)資源动看。這個(gè)做法設(shè)計(jì)是挺好的,可是爪幻,會有黑屏出現(xiàn)菱皆,一次性加載太多資源和邏輯了,即便是延遲代碼邏輯到下一幀還是黑屏挨稿。
----------------再次作死的分割線----------------
為了解決上述問題仇轻,再次討論了一個(gè)新的方案:制作一個(gè)假的大廳的首場景圖放入4M資源,讓玩家看起來就像進(jìn)入了大廳一樣奶甘。然后這個(gè)場景圖作為第一個(gè)loading場景篷店,這個(gè)界面功能就是加載大廳場景的所有資源,加載完成才進(jìn)入大廳。在上面加一層灰色蒙版疲陕,顯示當(dāng)前資源加載的進(jìn)度方淤。后來這個(gè)灰色蒙版和大廳首場景圖合并為一張圖,進(jìn)大廳之后再進(jìn)行加載游戲內(nèi)的資源蹄殃。
目前的效果終于滿足了策劃的需求携茂,可以進(jìn)行下一步的優(yōu)化了。
----------------我又換回來了的分割線----------------
目前基本能在微信的白屏加載完成后進(jìn)入假的大廳界面然后加載大廳資源诅岩,而且在3G網(wǎng)速下也沒有問題讳苦。但是有的配置很差的手機(jī),就算是wifi環(huán)境下在白屏到大廳中間還是有一段長時(shí)間的黑屏吩谦,這個(gè)解決方法就是在假的大廳加載資源這段代碼寫在一下一幀去執(zhí)行:
this.scheduleOnce(function () {
self.addHallSceneResources();
}, 0.01);
希望我別再回來了=鸳谜。=!J酵ⅰ咐扭!
下一步優(yōu)化游戲場景。