using System.Collections; using System.Collections.Generic; using System.Diagnostics; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; namespace BITKit { public class BITFramework : MonoBehaviour { private static Stopwatch Stopwatch; private static InitializationState InitializationState; [RuntimeInitializeOnLoadMethod] private static void Reload() { InitializationState = InitializationState.None; Stopwatch = Stopwatch.StartNew(); } [SerializeField] private AssetReference serviceReference; private async void Start() { if(InitializationState is not InitializationState.None)return; InitializationState = InitializationState.Initializing; var asyncOperationHandle = serviceReference.LoadAssetAsync(); await UniTask.WaitUntil(() => asyncOperationHandle.IsDone); DontDestroyOnLoad(Instantiate(asyncOperationHandle.Result)); Stopwatch.Stop(); BIT4Log.Log($"BITFramework加载完成,耗时:{Stopwatch.ElapsedMilliseconds}ms"); } } }