using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class UILoadingBar : MonoBehaviour
{
[SerializeField] private TMP_Text loadingTxt;
[SerializeField] private TMP_Text percnetText;
[SerializeField] private Slider loadingBar;
void Start()
{
loadingTxt.text = "Loading...";
percnetText.text = "0%";
}
public IEnumerator DownLoadStart()
{
while (DownLoadManager.Instance.DownloadPercent <= 100)
{
percnetText.text = Convert.ToString(DownLoadManager.Instance.DownloadPercent) + "%";
DownLoadManager.Instance.DownloadPercent++;
loadingBar.value += 0.01f;
yield return new WaitForSeconds(0.1f);
}
loadingTxt.text = "Download Complete!";
percnetText.gameObject.SetActive(false);
}
public void DownLoadStarting()
{
StartCoroutine(DownLoadStart());
}
}
2. UILoadingBar .cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DownLoadManager
{
private static DownLoadManager instance;
public int DownloadPercent = 0;
public static DownLoadManager Instance
{
get
{
if (instance == null)
{
instance = new DownLoadManager();
}
return instance;
}
}
// 생성자를 private으로 만들어 외부에서 인스턴스를 생성하지 못하게 함
private DownLoadManager() { }
}
3. DownLoadManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UIComponents : MonoBehaviour
{
[SerializeField] private Button loadingStartBtn;
[SerializeField] private UILoadingBar uiLoadingBar;
private void Start()
{
this.loadingStartBtn.onClick.AddListener(() => {
this.uiLoadingBar.DownLoadStarting();
});
}
}
4. UIComponents.cs
반응형
'산대특 > 게임 UIUX프로그래밍' 카테고리의 다른 글
[LearnGUI] 이름 설정 및 변경과 화면 클릭 시 경험치 획득과 레벨 업 구현 (0) | 2024.02.07 |
---|---|
[LearnUGUI] 팝업을 통한 이름 변경해보기 (0) | 2024.02.07 |
[LearnUGUI] 결과창(PlayResult) 만들기 (0) | 2024.02.06 |
[LearnUGUI] 체크박스 버튼 ON/OFF 구현 (0) | 2024.02.06 |
[LearnUGUI] TabMenu 및 TabMenu 전환 구현 (0) | 2024.02.06 |