EntryEvent2_InitServer.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. namespace ET.Server
  2. {
  3. [Event(SceneType.StateSync)]
  4. public class EntryEvent2_InitServer: AEvent<Scene, EntryEvent2>
  5. {
  6. protected override async ETTask Run(Scene root, EntryEvent2 args)
  7. {
  8. if (Options.Instance.Console == 1)
  9. {
  10. root.AddComponent<ConsoleComponent>();
  11. }
  12. World.Instance.AddSingleton<NavmeshComponent>();
  13. int process = root.Fiber.Process;
  14. StartProcessConfig startProcessConfig = StartProcessConfigCategory.Instance.Get(process);
  15. if (startProcessConfig.Port != 0)
  16. {
  17. await FiberManager.Instance.Create(SchedulerType.ThreadPool, SceneType.NetInner, 0, SceneType.NetInner, "NetInner");
  18. }
  19. // 根据配置创建纤程
  20. var scenes = StartSceneConfigCategory.Instance.GetByProcess(process);
  21. foreach (StartSceneConfig startConfig in scenes)
  22. {
  23. int sceneType = SceneTypeSingleton.Instance.GetSceneType(startConfig.SceneType);
  24. await FiberManager.Instance.Create(SchedulerType.ThreadPool, startConfig.Id, startConfig.Zone, sceneType, startConfig.Name);
  25. }
  26. }
  27. }
  28. }