using System; using Cysharp.Threading.Tasks; using UnityEngine; using YooAsset; using ZC; namespace Unity.Loader { public class Global : MonoBehaviour { public static Global Instance; private InitializePackage _initializePackage; [SerializeField] EPlayMode playMode; [SerializeField] private string packageName = "DefaultPackage"; ZCGame zcGame; private float time; private GlobalData _globalData; public GlobalData Data => _globalData; // Action public Action updateTime; public Action updateScore; public Action updateProgress; private void Awake() { Instance = this; DontDestroyOnLoad(this.gameObject); } private void Start() { this._initializePackage = new InitializePackage(playMode, this.packageName, FinishCallback); _globalData = new GlobalData(); } private void Update() { time += Time.fixedTime; updateTime?.Invoke(_globalData.runTimeStr); // Debug.Log($"{_globalData.runTimeStr}"); } private void OnDestroy() { _globalData.Dispose(); } private void FinishCallback() { // yoo init finish Debug.Log($"yoo init finish {DateTime.Now}"); zcGame = new ZCGame(this.gameObject); } } }