unity實現(xiàn)場景切換進度條顯示
更新時間:2019年11月03日 09:09:34 作者:無名之士
這篇文章主要為大家詳細(xì)介紹了unity實現(xiàn)場景切換進度條顯示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了unity實現(xiàn)場景切換進度條顯示的具體代碼,供大家參考,具體內(nèi)容如下
一、UI。建立slider適當(dāng)更改即可;


二、新增loadScene腳本,用來進行場景切換,將其綁定任意物體上面。博主以放置主相機為例。參數(shù)分別為進度條(用來設(shè)置value值),顯示進度文本text;

在設(shè)置中加入兩個場景:

三、腳本;
/// <summary>
/// 場景切換
/// 在unity 獲取當(dāng)前加載進度progress中,其中最多到0.9.只有等到加載到第二個場景才會到1
/// 所有在加載進度條時如果progress的值近似0.9,則直接將進度參數(shù)設(shè)置為1,實現(xiàn)進度到100%
/// 并且progress的值是在一幀加載一些資源,所以其值不會是連續(xù)的,因此設(shè)置兩個參數(shù)來記錄當(dāng)前
/// 進度和頁面顯示的進度,進行++。
/// </summary>
public class loadScene : MonoBehaviour
{
AsyncOperation async;
public Slider slider;
public Text text;//百分制顯示進度加載情況
void Start()
{
//開啟協(xié)程
StartCoroutine("loginMy");
}
void Update()
{
}
IEnumerator loginMy()
{
int displayProgress = 0;
int toProgress = 0;
AsyncOperation op = SceneManager.LoadSceneAsync(1);
op.allowSceneActivation = false;
while (op.progress < 0.9f) //此處如果是 <= 0.9f 則會出現(xiàn)死循環(huán)所以必須小0.9
{
toProgress = (int)op.progress * 100;
while (displayProgress < toProgress)
{
++displayProgress;
SetLoadingPercentage(displayProgress);
yield return new WaitForEndOfFrame();//ui渲染完成之后
}
}
toProgress = 100;
while (displayProgress < toProgress)
{
++displayProgress;
SetLoadingPercentage(displayProgress);
yield return new WaitForEndOfFrame();
}
op.allowSceneActivation = true;
}
private void SetLoadingPercentage(int displayProgress)
{
slider.value = displayProgress;
text.text = displayProgress.ToString() + "%";
}
}
四、運行:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C# OpenCvSharp實現(xiàn)去除文字中的線條
這篇文章主要為大家詳細(xì)介紹了C#如何使用OpenCvSharp實現(xiàn)去除文字中的線條效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
DevExpress之ChartControl實現(xiàn)柱狀圖演示實例
這篇文章主要介紹了DevExpress中ChartControl實現(xiàn)柱狀圖演示方法,實例展示了相關(guān)繪圖函數(shù)的具體用法,具有一定的實用價值,需要的朋友可以參考下2014-10-10
C#自定義導(dǎo)出數(shù)據(jù)到Excel的類實例
這篇文章主要介紹了C#自定義導(dǎo)出數(shù)據(jù)到Excel的類,實例分析了C#操作Excel的技巧,非常具有實用價值,需要的朋友可以參考下2015-03-03

