using System.Collections; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; using UnityEngine.UI; using Random = UnityEngine.Random; public class LoadingUI : MyCoroutine { public static LoadingUI Ins; public GameObject go; public TextMeshProUGUI[] texts; // 0 팁, 1 로딩 진행 상황 public Slider slider_loading; public RawImage loadingimg; AsyncOperationHandle currentHandle; public int MaxImage = 1; int m_index = 1; void Awake() { Ins = this; } public void Start_Loading() { go.SetActive(true); m_index = Random.Range(1, MaxImage + 1); texts[0].text = "팁 입니다."; slider_loading.value = 0f; texts[1].text = "0%"; AddrResourceMgr.Ins.LoadObject($"Assets/Res_Addr/Loading/Loading{m_index}.jpg", handle => { if (currentHandle.IsValid()) { Addressables.Release(currentHandle); loadingimg.texture = null; // 기존 Texture 참조 해제 } currentHandle = handle; loadingimg.enabled = true; loadingimg.texture = handle.Result; }); } public void Set_LoadingSlider(float proc) { slider_loading.value = proc; texts[1].text = $"{proc * 100f:N0}%"; } public void End_Loading() { go.SetActive(false); } }