Unity3D 加載場(chǎng)景有很多種方式,做一些小的 DEMO 的時(shí)候往往是直接使用 Application.LoadLevel 或者 Application.LoadLevelAsync 函數(shù)加載場(chǎng)景,具體可查看(http://www.xuanyusong.com/archives/1427),但是這種辦法不適合在真正的 Unity3D 開(kāi)發(fā)中,因?yàn)榍耙环N需要把所有的場(chǎng)景都打包,這在某些情況下是不現(xiàn)實(shí)的,比如開(kāi)發(fā)頁(yè)游,我們不可能把所有的場(chǎng)景都打包讓用戶下載,我們需要一個(gè)場(chǎng)景一個(gè)場(chǎng)景的加載,這時(shí)候我們可以使用 WWW 先通過(guò) HTTP 加載場(chǎng)景到本地緩存,然后再使用 Application.LoadLevel 或者 Application.LoadLevelAsync 函數(shù)加載場(chǎng)景,使用這種加載方式,不僅不需要 Build Settings -> Add Current 處理加載場(chǎng)景,進(jìn)度條的顯示也更加容易,但是使用這種方式,需要先把場(chǎng)景打包成 unity3d(查看詳情) 或者 assetbundle(查看詳情) 文件。
先把測(cè)試場(chǎng)景搭建好,如圖:
然后添加一個(gè) C# 腳本,取名 UseWww.cs,全部代碼如下:
然后把這個(gè)腳本掛載到游戲場(chǎng)景的一個(gè)對(duì)象中,設(shè)置好相關(guān)屬性,如圖:
運(yùn)行我們的游戲,可以查看進(jìn)度條的加載情況,當(dāng)加載完成,自動(dòng)跳轉(zhuǎn)到下一個(gè)場(chǎng)景中,如圖:
因?yàn)榍懊嫖曳庋b了一個(gè) WWW 加載管理器(查看詳情),我們可以直接拿來(lái)使用,我們建立一個(gè)新的 C# 腳本,取名 UseWwwLoaderManager.cs,全部代碼如下:
新聞熱點(diǎn)
疑難解答
圖片精選