微信登录

ScenesManager.cs - 场景切换

ScenesManager.cs

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Events;
  5. using UnityEngine.SceneManagement;
  6. //场景切换
  7. //委托
  8. //协程
  9. public class ScenesManager : BaseManager<ScenesManager>
  10. {
  11. //切换场景-同步
  12. public void LoadScene(string SenseName, UnityAction fun)
  13. {
  14. SceneManager.LoadScene(SenseName);
  15. //加载完成后执行
  16. fun();
  17. }
  18. //切换场景-异步
  19. public void LoadSceneAsyn(string SenseName, UnityAction fun)
  20. {
  21. MonoManager.GetInstance().StartCoroutine(ReallyLoadSceneAsyn(SenseName, fun));//MonoManager开启协程
  22. }
  23. //协程 真实异步加载
  24. private IEnumerator ReallyLoadSceneAsyn(string SenseName, UnityAction fun)
  25. {
  26. AsyncOperation ao = SceneManager.LoadSceneAsync(SenseName);
  27. while (!ao.isDone)
  28. {
  29. //事件中心向外分发进度
  30. //EventCenter.GetInstance().EventTriggler("进度条", ao.progress);
  31. yield return ao.progress;//百分比进度
  32. }
  33. yield return ao;
  34. //加载完成后执行
  35. fun();
  36. }
  37. }
ScenesManager.cs - 场景切换