2026-05-06 15:07:56 +02:00

53 lines
1.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if UMA_ADDRESSABLES
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
#endif
using UnityEngine.UI;
public class Preloader : MonoBehaviour
{
public List<string> Labels;
public Slider LoadingSlider;
#if UMA_ADDRESSABLES
private AsyncOperationHandle op;
#endif
// Start is called before the first frame update
void Start()
{
#if UMA_ADDRESSABLES
op = Addressables.DownloadDependenciesAsync(Labels, Addressables.MergeMode.Union, false);
op.Completed += Op_Completed;
//await op.Task;
#else
Debug.Log("Addressables is not defined.");
Text t = LoadingSlider.gameObject.GetComponentInChildren<Text>();
t.text = "Sample requires addressables to run.";
#endif
}
#if UMA_ADDRESSABLES
void Update()
{
LoadingSlider.value = op.PercentComplete;
Text t = LoadingSlider.gameObject.GetComponentInChildren<Text>();
t.text = op.Status.ToString();
}
private void Op_Completed(AsyncOperationHandle obj)
{
if (obj.Status == AsyncOperationStatus.Succeeded)
{
LoadingSlider.gameObject.SetActive(false);
}
else
{
Text t = LoadingSlider.gameObject.GetComponentInChildren<Text>();
t.text = obj.Status.ToString();
}
}
#endif
}