Entry.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using MemoryPack;
  2. using MongoDB.Bson;
  3. using MongoDB.Bson.Serialization.Serializers;
  4. namespace ET
  5. {
  6. public struct EntryEvent1
  7. {
  8. }
  9. public struct EntryEvent2
  10. {
  11. }
  12. public struct EntryEvent3
  13. {
  14. }
  15. public static class Entry
  16. {
  17. public static void Init()
  18. {
  19. }
  20. public static void Start()
  21. {
  22. StartAsync().Coroutine();
  23. }
  24. private static async ETTask StartAsync()
  25. {
  26. WinPeriod.Init();
  27. // 注册Mongo type
  28. MongoRegister.Init();
  29. // 注册Entity序列化器
  30. EntitySerializeRegister.Init();
  31. World.Instance.AddSingleton<IdGenerater>();
  32. World.Instance.AddSingleton<OpcodeType>();
  33. World.Instance.AddSingleton<ObjectPool>();
  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. }