第一步當載入完loading場景後,呼叫如下的loadgame
函式開始載入遊戲場景,使用非同步載入的方式載入場景1(loading場景為0,主場景為1),通過unity提供的coroutine機制,我們可以方便的在每一幀結束後呼叫setloadingpercentage
函式來更新介面中顯示的進度條的數值。
public
void
loadgame
()private
ienumerator
startloading_1
(int
scene
)}
最後進度條的效果顯示如下:
為了讓進度條能顯示100%,取巧一點的辦法是將asyncoperation.progress
的值乘上2,這樣當載入到50%的時候介面上就顯示100%了。缺點是當介面上顯示100%的時候,使用者還要等待一段時間才會進入遊戲。其實unity提供了手動切換場景的方法,把asyncoperation.allowsceneactivation
設為false
就可以禁止unity載入完畢後自動切換場景,修改後的startloading_2
**如下:
// this function is not work
private
ienumerator
startloading_2
(int scene)op.
allowsceneactivation
=true
;}
我們首先將asyncoperation.allowsceneactivation
設為false
,當載入完成後再設為true
。**看上去沒有錯,但是執行的結果是進度條最後會一直停留在90%上,場景不會切換。通過列印log發現asyncoperation.isdone
一直為false
,asyncoperation.progress
的值增加到0.9後就保持不變了,也就是說場景永遠不會被載入完畢。
在這個帖子中找到了答案,原來把allowsceneactivation
設定為false
後,unity就只會載入場景到90%,剩下的10%要等到allowsceneactivation
設定為true
後才載入,這不得不說是乙個坑。所以**改為如下。當asyncoperation.progress
到達0.9後,就直接把進度條的數值更新為100%,然後設定asyncoperation.allowsceneactivation
為ture
,讓unity繼續載入未完成的場景。
private
ienumerator
startloading_3
(int scene)
setloadingpercentage
(100
);yield
return
newwaitforendofframe
();op
.allowsceneactivation
=true;}
最後的效果如下:
private
ienumerator
startloading_4
(int scene)
}toprogress
=100
;while
(displayprogress
< span>toprogress)op
.allowsceneactivation
=true;}
displayprogress
用來記錄要顯示在進度條上的數值,最後進度條的動畫如下:
對比第一種的進度條
如果在載入遊戲主場景之前還需要解析資料**,生成物件池,進行網路連線等操作,那麼可以給這些操作賦予乙個權值,利用這些權值就可以計算載入的進度了。如果你的場景載入速度非常快,那麼可以使用乙個假的進度條,讓玩家看上幾秒鐘的loading動畫,然後再載入場景。總之進度條雖然小,但要做好也是不容易的。
阿高.unity 顯示loading(載入)進度 對於網上流行的方法進行更正
unity3d官方論壇.using allowsceneactivation
Unity3D模型製作規範
unity3d模型製作規範 一.單位,比例統一 在建模型前先設定好單位,在同一場景中會用到的模型的單位設定必須一樣,模型與模型之間的比例要正確,和程式的匯入單位一致,即便到程式需要縮放也可以統一調整縮放比例。統一單位為公尺。二.模型規範 所有角色模型最好站立在原點。沒有特定要求下,必須以物體物件中心...
unity3d模型製作規範
1.單位,比例統一 在建模型前先設定好單位,在同一場景中會用到的模型的單位設定必須一樣,模型與模型之間的比例要正確,和程式的匯入單位一致,即便到程式需要縮放也可以統一調整縮放比例。統一單位為公尺。2.模型規範 所有角色模型最好站立在原點。沒有特定要求下,必須以物體物件中心為軸心。面數的控制。移動裝置...
Unity3D模型製作規範 參考
一.單位,比例統一 在建模型前先設定好單位,在同一場景中會用到的模型的單位設定必須一樣,模型與模型之間的比例要正確,和程式的匯入單位一致,即便到程式需要縮放也可以統一調整縮放比例。統一單位為公尺。二.模型規範 所有角色模型最好站立在原點。沒有特定要求下,必須以物體物件中心為軸心。面數的控制。移動裝置...