unity异步加载场景

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public enum Zhuan_huan
{
    one,
    two
}
public class Head_trigger : MonoBehaviour {
    public Zhuan_huan zhuan;
    public GameObject fogdemo;

    private bool one_xunhuan;
    private AsyncOperation _async;
    private int _nowProgress;
    // Use this for initialization
    void Start () {
     
       
	}
	
	// Update is called once per frame
	void Update () {
        if (_async == null)
        {
            return;
        }
        int toProgress;
        if (_async.progress < 0.9f)
        {
            toProgress = (int)_async.progress * 100;
        }
        else
        {
            toProgress = 100;
        }
        if (_nowProgress < toProgress)
        {
            _nowProgress++;
        }
        Debug.Log("现在的进度是:" + _nowProgress + "%");
        if (_nowProgress == 100)
        {
            _async.allowSceneActivation = true;
        }

    }
    private void OnTriggerEnter(Collider other)
    {
        if (one_xunhuan == false)
        {
            if (other.name == "传送门")
            {
                StartCoroutine(Ynsshi());
                fogdemo.SetActive(true);
            }
            one_xunhuan = true;
        }
        
    }
    IEnumerator Ynsshi()
    {
        yield return new WaitForSeconds(3);
        if (zhuan == Zhuan_huan.one)
        {
            //SceneManager.LoadScene(1);
            _async = SceneManager.LoadSceneAsync("modo2");
            _async.allowSceneActivation = false;
            yield return _async;
        }
        if (zhuan == Zhuan_huan.two)
        {
            //SceneManager.LoadScene(0);

            _async = SceneManager.LoadSceneAsync("modo");
            _async.allowSceneActivation = false;
            yield return _async;
        }
        
        
    }
}

原网址:https://blog.csdn.net/yy763496668/article/details/78182247  (写的挺好)

猜你喜欢

转载自blog.csdn.net/fanfan_hongyun/article/details/81077103