Unity Loading转场学习笔记

将要加载的场景全都导入Bulid Settings,跳过此步会报错
在这里插入图片描述
编写LevelManager脚本,实现Loading转场效果

static string nextLevel;//转场后的下一个场景
AsyncOperation asyn;
public Slider slider;
public Text text;
   
private float tempProgress;
private void Start()
{
     tempProgress = 0;
      if (SceneManager.GetActiveScene().name=="Loading")//如果当前活跃场景是Loading,异步加载下一个场景
      {
            asyn = SceneManager.LoadSceneAsync(nextLevel);
            asyn.allowSceneActivation = false;//把allowSceneActivation设置为false后,Unity就只会加载场景到90%,剩下的10%要等到allowSceneActivation设置为true后才加载
        }
}
public void LoadLoadingLevel(string nextLevelName)//加载Loading界面,并传入下一个场景名
{
       nextLevel = nextLevelName;
       SceneManager.LoadScene("Loading");
 }
private void Update()
{
        if(text&&slider)
        {
        	  //更新Loading进度条和加载数字
            tempProgress = Mathf.Lerp(tempProgress, asyn.progress, Time.deltaTime);
            text.text = ((int)(tempProgress / 9 * 10 * 100)).ToString() + "%";
            slider.value = tempProgress / 9 * 10;
            
             if (slider.value>=0.99)
             {
                tempProgress = 1;
                text.text = 100 + "%";
                slider.value = 100 / 9 * 10;
                asyn.allowSceneActivation = true;
              }
        }
 }

脚本参数设置好后,在Button中调用
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/YYYJ_BOY/article/details/89298632