Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 에러해결
- 논문editor
- Alignments
- RMES
- PAPER
- Scienceplots
- Pycaret
- TypeError
- 파이썬을파이썬답게
- 코테
- MAPE
- 프로그래머스
- SMAPE
- 논문
- knn
- Python
- 논문작성
- 스택
- Overleaf
- Tire
- n_sample
- mMAPE
- n_neighbors
- 평가지표
- 카카오
- mes
- python 갯수세기
- iNT
- Mae
- KAKAO
Archives
- Today
- Total
EunGyeongKim
[unity]비동기 로딩 화면 최적화 본문
이번 글에서는 Unity에서 검은 화면 없이 자연스러운 씬 전환을 위한 LoadingManager.cs
최적화 방법을 다룹니다.
🚀 최적화된 씬 전환 흐름
- 스플래시 화면 → 자동으로
LoadingScene
으로 이동 - LoadingScene에서 최소 1.5초 유지 (비동기 로딩 진행)
- 로딩 완료 후 LoginScene으로 부드럽게 전환
💡 문제: 검은 화면 없이 자연스럽게 씬 전환
Unity에서 씬 전환 시 비동기 로딩을 적용하지 않으면 로딩 중 검은 화면이 길어질 수 있습니다.
이를 해결하려면 SceneManager.LoadSceneAsync()
를 활용하여 로딩 화면을 유지한 채 씬을 비동기 로드하는 방식이 필요합니다.
✅ 최적화된 LoadingManager.cs
코드
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
public class LoadingManager : MonoBehaviour
{
public GameObject loadingCanvas; // 🔹 로딩 UI
public float minLoadingTime = 1.5f; // 🔹 최소 로딩 시간
private void Start()
{
loadingCanvas.SetActive(true); // 🚀 로딩 화면 활성화
StartCoroutine(LoadLoginScene());
}
private IEnumerator LoadLoginScene()
{
float startTime = Time.time; // 🚀 로딩 시작 시간
// 🔹 비동기 방식으로 "LoginScene" 로드 (씬 활성화는 보류)
AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("LoginScene");
asyncLoad.allowSceneActivation = false;
// 🚀 최소 로딩 시간 보장 (1.5초 이상 로딩 화면 유지)
while (Time.time - startTime < minLoadingTime || !asyncLoad.isDone)
{
if (asyncLoad.progress >= 0.9f && Time.time - startTime >= minLoadingTime)
{
yield return new WaitForSeconds(0.5f); // 🚀 부드러운 전환 효과 추가
asyncLoad.allowSceneActivation = true; // 🚀 씬 활성화
}
yield return null;
}
// 🚀 씬이 완전히 로드된 후 로딩 UI 숨기기
loadingCanvas.SetActive(false);
}
}
🎯 최적화된 비동기 로딩 방식
SceneManager.LoadSceneAsync()
사용하여 백그라운드에서 씬을 로드- 로딩이 90% 이상 완료될 때까지
allowSceneActivation = false
설정 - 최소 1.5초 동안 로딩 화면 유지하여 짧은 씬 로드에도 로딩 화면이 너무 빨리 사라지는 현상 방지
yield return new WaitForSeconds(0.5f)
추가로 전환이 더 자연스럽게 진행
✨ 결과: 스플래시 → 로딩 → 로그인 화면으로 자연스럽게 전환
이제 Unity 프로젝트에서 검은 화면 없이 부드러운 씬 전환이 가능합니다! 🚀
'기타 컴퓨터 > Unity' 카테고리의 다른 글
[Error Log] No activity in the manifest with action MAIN and category LAUNCHER (0) | 2025.01.27 |
---|
Comments