Entry.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. namespace ET
  3. {
  4. public struct EntryEvent1
  5. {
  6. }
  7. public struct EntryEvent2
  8. {
  9. }
  10. public struct EntryEvent3
  11. {
  12. }
  13. public static class Entry
  14. {
  15. public static void Init()
  16. {
  17. }
  18. public static void Start()
  19. {
  20. StartAsync().Coroutine();
  21. }
  22. private static async ETTask StartAsync()
  23. {
  24. WinPeriod.Init();
  25. // 注册Mongo type
  26. MongoRegister.Init();
  27. MemoryPackRegister.Init();
  28. // 注册Entity序列化器
  29. EntitySerializeRegister.Init();
  30. World.Instance.AddSingleton<SceneTypeSingleton, Type>(typeof(SceneType));
  31. World.Instance.AddSingleton<ObjectPool>();
  32. World.Instance.AddSingleton<IdGenerater>();
  33. World.Instance.AddSingleton<OpcodeType>();
  34. World.Instance.AddSingleton<MessageQueue>();
  35. World.Instance.AddSingleton<NetServices>();
  36. World.Instance.AddSingleton<NavmeshComponent>();
  37. World.Instance.AddSingleton<LogMsg>();
  38. // 创建需要reload的code singleton
  39. CodeTypes.Instance.CreateCode();
  40. await World.Instance.AddSingleton<ConfigLoader>().LoadAsync();
  41. await FiberManager.Instance.Create(SchedulerType.Main, ConstFiberId.Main, 0, SceneType.Main, "");
  42. }
  43. }
  44. }