using System.Threading; using BITKit; using BITKit.UX; using Cysharp.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Net.Like.Xue.Tokyo.UX; using Net.Project.B.UX; using Project.B.UX; using UnityEngine; using IUXDialogue = Net.Project.B.UX.IUXDialogue; namespace Net.Like.Xue.Tokyo { public class Program : MonoBehaviour { private async void Start() { DontDestroyOnLoad(gameObject); var source = new CancellationTokenSource(); destroyCancellationToken.Register(source.Cancel); var serviceCollection = BITApp.ServiceCollection = new ServiceCollection(); await global::Project.B.Program.AddProjectBServices(serviceCollection,source); serviceCollection.AddSingleton(); serviceCollection.AddSingleton>(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); //获取服务提供者 await using var serviceProvider = BITApp.ServiceProvider = serviceCollection.BuildServiceProvider(); await global::Project.B.Program.BuildServiceProvider(serviceProvider,destroyCancellationToken); var uxService = serviceProvider.GetRequiredService(); await uxService.InitializeAsync(); uxService.Entry(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); serviceProvider.GetRequiredService(); Application.targetFrameRate = 165; await destroyCancellationToken.WaitUntilCanceled(); } } }