SceneChangeStart_AddComponent.cs 922 B

123456789101112131415161718192021222324252627282930
  1. namespace ET
  2. {
  3. public class SceneChangeStart_AddComponent: AEvent<EventType.SceneChangeStart>
  4. {
  5. protected override async ETTask Run(EventType.SceneChangeStart args)
  6. {
  7. Scene currentScene = args.ZoneScene.CurrentScene();
  8. // 加载场景资源
  9. await ResourcesComponent.Instance.LoadBundleAsync($"{currentScene.Name}.unity3d");
  10. // 切换到map场景
  11. SceneChangeComponent sceneChangeComponent = null;
  12. try
  13. {
  14. sceneChangeComponent = Game.Scene.AddComponent<SceneChangeComponent>();
  15. {
  16. await sceneChangeComponent.ChangeSceneAsync(currentScene.Name);
  17. }
  18. }
  19. finally
  20. {
  21. sceneChangeComponent?.Dispose();
  22. }
  23. currentScene.AddComponent<OperaComponent>();
  24. }
  25. }
  26. }