54 lines
1.4 KiB
C#
54 lines
1.4 KiB
C#
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<Texture> 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<Texture>($"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);
|
|
}
|
|
} |