public async void Start()
        {
            //初始化zstring
            using (zstring.Block()) { }

            LaunchUI.Init();
            List <Func <Task> > initFunctions = new List <Func <Task> >();

            //config
            initFunctions.Add(UILocationAsset.Refresh);
            initFunctions.Add(UICodeTextAsset.Refresh);
            initFunctions.Add(UINamesAsset.Refresh);
            initFunctions.Add(AtlasConfigAsset.Refresh);
            initFunctions.Add(UIConfigAsset.Refresh);
            initFunctions.Add(AudioConfigAsset.Refresh);
            initFunctions.Add(PrefabPathAsset.Refresh);
            initFunctions.Add(ModelConfigAsset.Refresh);
            //setting
            initFunctions.Add(HUDConfigAsset.Load);
            for (int i = 0; i < initFunctions.Count; i++)
            {
                await initFunctions[i].Invoke();
                LaunchUI.ShowProcess((float)(i + 1) / (float)initFunctions.Count * 0.5f);
            }

            SoundManager.Init();
            TcpManager.Init();
            MapManager.Init();
            AOIManager.Init();
            XLuaManager.Init();
            XLuaManager.Inject <GameSettings>("GameSettings", GameSettings);
            XLuaManager.StartGame();
            LuaLoadedTime = DateTime.UtcNow.Ticks;
        }
 private async void OnApplicationQuit()
 {
     AtlasManager.Dispose();
     XLuaManager.Dispose();
     AOIManager.Dispose();
     TcpManager.Dispose();
     TimeManager.Dispose();
     MapManager.Dispose();
     HUDManager.Dispose();
     //why
     await Task.Delay(1);
 }