public static LOAD instance;
public UnityEvent startEvent;
public UnityEvent asyncLoadOverEvent;
AsyncOperation asyncOperation;
// Use this for initialization
void Start()
{
instance = this;
startEvent.Invoke();
}
// Update is called once per frame
void Update()
{
if (jishi > 300) LOAD.instance.fn_allowSceneActivation();
}
/// <summary>
/// 异步加载
/// </summary>
/// <param name="scenceName"></param>
public void fn_asyncLoad(string scenceName)
{
StartCoroutine(fn_load_00(scenceName));
}
public void fn_allowSceneActivation()
{
if(asyncOperation!=null) asyncOperation.allowSceneActivation = true;
}
IEnumerator fn_load_00(string scenceName)
{
asyncOperation = SceneManager.LoadSceneAsync(scenceName,LoadSceneMode.Single);
asyncOperation.allowSceneActivation = false;
while (!asyncOperation.isDone)
{
print(asyncOperation.progress);
if (asyncOperation.progress >= 0.9f) {
asyncLoadOverEvent.Invoke();
break;
}
yield return 1;
}
yield return asyncOperation;
}
/// <summary>
/// 非异步加载
/// </summary>
/// <param name="scenceName"></param>
public static void FN_loadString(string scenceName)
{
SceneManager.LoadScene(scenceName);
}
public static void FN_loadNum(int i)
{
SceneManager.LoadScene(i);
}
public void fn_loadString(string scenceName)
{
SceneManager.LoadScene(scenceName);
}
public void fn_loadNum(int i)
{
SceneManager.LoadScene(i);
}
加载场景
最新推荐文章于 2024-07-04 23:22:27 发布