AppStart_Init.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334
  1. namespace ET.Client
  2. {
  3. [Event(SceneType.Process)]
  4. public class AppStart_Init: AEvent<Scene, EventType.AppStart>
  5. {
  6. protected override async ETTask Run(Scene scene, EventType.AppStart args)
  7. {
  8. Game.Scene.AddComponent<TimerComponent>();
  9. Game.Scene.AddComponent<CoroutineLockComponent>();
  10. // 加载配置
  11. Game.Scene.AddComponent<ResourcesComponent>();
  12. await ResourcesComponent.Instance.LoadBundleAsync("config.unity3d");
  13. Game.Scene.AddComponent<ConfigComponent>().ConfigLoader = new ConfigLoader();
  14. ConfigComponent.Instance.Load();
  15. ResourcesComponent.Instance.UnloadBundle("config.unity3d");
  16. Game.Scene.AddComponent<OpcodeTypeComponent>();
  17. Game.Scene.AddComponent<MessageDispatcherComponent>();
  18. Game.Scene.AddComponent<NetThreadComponent>();
  19. Game.Scene.AddComponent<ClientSceneManagerComponent>();
  20. Game.Scene.AddComponent<GlobalComponent>();
  21. Game.Scene.AddComponent<NumericWatcherComponent>();
  22. Game.Scene.AddComponent<AIDispatcherComponent>();
  23. await ResourcesComponent.Instance.LoadBundleAsync("unit.unity3d");
  24. Scene clientScene = Client.SceneFactory.CreateClientScene(1, "Game", Game.Scene);
  25. await Game.EventSystem.PublishAsync(clientScene, new EventType.AppStartInitFinish());
  26. }
  27. }
  28. }