SceneChangeStart_AddComponent.cs 970 B

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