BITKit/Packages/Runtime~/Unity/Scripts/BITFramework.cs

34 lines
1.2 KiB
C#

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<GameObject>();
await UniTask.WaitUntil(() => asyncOperationHandle.IsDone);
DontDestroyOnLoad(Instantiate(asyncOperationHandle.Result));
Stopwatch.Stop();
BIT4Log.Log<BITFramework>($"BITFramework加载完成,耗时:{Stopwatch.ElapsedMilliseconds}ms");
}
}
}