1. 程式人生 > >unity啟動介面慢(黑屏)處理(三)

unity啟動介面慢(黑屏)處理(三)

 關於unity的啟動一開始以為弄完了,啟動介面的事情,剛開始啟動還覺得挺好的,最起碼不會黑黑的一個螢幕在那裡,對於啟動場景資源少的遊戲或許沒什麼問題,但是對於資源有點多的起始場景卻感覺有點卡,像宕機那樣的等待。一開始覺得只要在起始場景那裡不做資源載入不就行了嗎,可是後來覺得這只是治標不治本,如果有些機子比較老,就像我的手機那樣,即使不怎麼放資源。在啟動的時候還是有點停頓。給玩家的感覺就是卡住了。就這樣想到了某些App,在啟動介面的時候除了有個背景,還有一個動畫,雖然沒有做過但是還是可以去嘗試下的。

利用unity啟動介面慢(黑屏)處理(二)的專案,在裡面新增功能。也是採用安卓的程式碼,這次使用的是一個安卓自帶的

圈圈實現,本想著做動畫的但是覺得不好做,能做一個自帶的動畫又不用搞資源,就好了。我在這裡只是演示了一種,

關於安卓的進度條的除了這個圈圈的還有的就是水平進度條和豎著的,有興趣的可以試試,當然有條件,能力強的童鞋,

可以自己作一個動畫來實現,就像騰訊遊戲那樣,一個動畫多酷炫,我呢只能有安卓自帶的功能和API.

借用上一個文章的程式碼,同時上文章的程式碼中新增需要的函式:

public void SetProgressBar(UnityPlayer unityPlayer,Activity mainActivity)
    {
        barShow = new ProgressBar(unityPlayer.currentActivity, null, android.R.attr.progressBarStyleLarge);
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(-2,-2);
        barShow.setLayoutParams(lp);
        WindowManager wm = (WindowManager)mainActivity.getSystemService(Context.WINDOW_SERVICE);
        int w = wm.getDefaultDisplay().getWidth()/2;
        int h = wm.getDefaultDisplay().getHeight()/2;
        barShow.setPadding(w-40,h-60,0,0);
        unityPlayer.addView(barShow,-1);
    }

銷燬的程式碼:
 public void HideSplash(UnityPlayer unityPlayer)
    {
        new Handler(Looper.getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                ……
                if(barShow != null)
                {
                    mUnityPlayer.removeView(barShow);
                    barShow = null;
                }
            }
        });
    }
效果如下:


程式碼比較簡陋,望不要介意,如果有更好的方案,多多提點。下面提供這個專案檔案的下載: