2026-04-17 로딩바 완성
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
@@ -7,6 +8,7 @@ public class SceneLoadManager : MonoBehaviour
|
||||
{
|
||||
public static SceneLoadManager Instance;
|
||||
|
||||
[SerializeField] private GameObject _loadingRoot;
|
||||
[SerializeField] private Camera _loadingCam;
|
||||
[SerializeField] private Transform _loadingCamTargetTransform;
|
||||
[SerializeField] private LoadingScreen _loadingScreen;
|
||||
@@ -30,6 +32,15 @@ private void Start()
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if(_loadingCamTargetTransform != null)
|
||||
{
|
||||
_loadingCam.transform.position = _loadingCamTargetTransform.position;
|
||||
_loadingCam.transform.rotation = _loadingCamTargetTransform.rotation;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
||||
{
|
||||
// 씬이 로드될 때마다
|
||||
@@ -56,13 +67,16 @@ public async Awaitable FadeLoadingCanvas(bool isOut,float fadeTime)
|
||||
|
||||
public async Task SetSceneLoadingActive(bool isActive,float alphaTime)
|
||||
{
|
||||
if (isActive)
|
||||
_loadingRoot.SetActive(true);
|
||||
|
||||
if(alphaTime > 0f)
|
||||
if (alphaTime > 0f)
|
||||
{
|
||||
await FadeLoadingCanvas(!isActive,alphaTime);
|
||||
}
|
||||
|
||||
_loadingScreen.gameObject.SetActive(isActive);
|
||||
if (!isActive)
|
||||
_loadingRoot.SetActive(false);
|
||||
}
|
||||
|
||||
public void SetSceneLoadingActive(bool isActive)
|
||||
@@ -90,7 +104,7 @@ private async Awaitable SceneChange(string sceneName)
|
||||
{
|
||||
try
|
||||
{
|
||||
await SetSceneLoadingActive(true,2f);
|
||||
await SetSceneLoadingActive(true,1f);
|
||||
|
||||
AsyncOperation op = SceneManager.LoadSceneAsync(sceneName);
|
||||
|
||||
@@ -133,7 +147,7 @@ private async Awaitable SceneChange(string sceneName)
|
||||
//VR용 로직
|
||||
//트래킹이 중단되면 안되기 때문에 카메라를 유지해야 한다
|
||||
_loadingCamTargetTransform = Camera.main.transform; // 새로운 씬의 메인카메라를 따라가게끔 설정
|
||||
await SetSceneLoadingActive(false,2f);
|
||||
await SetSceneLoadingActive(false,1f);
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
Debug.Log("씬 전환됨");
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
public class LoadingScreen : MonoBehaviour
|
||||
{
|
||||
public Image LoadingImage;
|
||||
public Image BackgroundImage;
|
||||
public TextMeshProUGUI LoadingTextMeshProUGUI;
|
||||
public CanvasGroup LoadingScreenCanvasGroup;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user