1. 程式人生 > >unity3d實現Loading進度條非同步載入場景

unity3d實現Loading進度條非同步載入場景

         一款大型遊戲,開始遊戲載入場景的時候一般都帶有進度條載入模式,這將與進度條載入速度同步來載入場景。如果沒有了進度條,我們開始遊戲或者進入下一個場景的時候,因為電腦要載入大場景需要一定的時間,我們就會卡在原先的畫面。所以我們需要這載入的中間插入場景來緩衝這個過程,這就是所謂進度條的作用!不會讓遊戲載入下一個場景時候感覺怪怪的!下面開始介紹!

    我們以開始遊戲載入為例。首先新建一個新場景,把場景命名為Start吧。然後開始做介面,我就簡單隨隨便便做了個介面,開始背景(Image)和一個開始按鈕(Button)。簡單寫個載入場景的程式碼吧,public void OnClick( ) {Application.LoadLevel("Loading");}這個程式碼作用是載入到Loading場景,顧名思義就是進度條。程式碼用法是在場景中新建一個空的遊戲物件命名為Start,為它繫結剛才寫好的指令碼。然後把物件拖拽到Button面板中,方法選中OnClick()即可!


      接下來新建一個場景,並且命名為Loading。隨便做個場景,背景(Image),Text(用來顯示載入進度),Loading進度條(Slider)。Silder分為三部分,上層下層和頭部Image,將上層的進度條Image元件中的Image Ttpe改為Filled。進度條可不能做得那麼隨便,需要自己除錯長寬高,否則影響進度條的美觀和載入時候的效果!下面看看我做的(雖然不怎麼懂畫畫,但PS還算可以的)


    下面來看核心指令碼和註釋。寫好指令碼以後,在場景建立一個空的遊戲物件,繫結指令碼,並把進度條和文字物件拖拽到指令碼面板中。最重要的是在unity的File中Build Settings,按順序新增場景,如圖!



   執行來看看效果吧,已經可以了。當進度條載入到100%就可以進入遊戲了!一開始把進度條禁用效果會好點,畢竟在指令碼初始化中會有SetActive(true);(進度條載入速度與場景大小和計算機執行速度有關)