씬 리로드 방식 이벤트 방식 -> 게임매니저로 통일

This commit is contained in:
NTG_Lenovo 2025-07-02 13:50:33 +09:00
parent 30146c02ce
commit ea5d822687
7 changed files with 33 additions and 58 deletions

View File

@ -2526,12 +2526,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 620909d88f805ee4898b9af964a7f0e8, type: 3} m_Script: {fileID: 11500000, guid: 620909d88f805ee4898b9af964a7f0e8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
<MoveSpeed>k__BackingField: 7 _moveSpeed: 7
<MoveSpeedMultiplier>k__BackingField: 1 _moveSpeedMultiplier: 1
<DashSpeed>k__BackingField: 20 _dashSpeed: 20
<DashTime>k__BackingField: 0.2 _dashTime: 0.2
<DashCooldown>k__BackingField: 0.5 _dashCooldown: 0.5
_dashParticle: {fileID: 0} _dashParticle: {fileID: 0}
_walkingSfxName: TycoonPlayerWalking
_dashSfxName: TycoonPlayerDashing _dashSfxName: TycoonPlayerDashing
cellManager: {fileID: 1015166837} cellManager: {fileID: 1015166837}
--- !u!114 &985479691 --- !u!114 &985479691
@ -2601,7 +2602,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!114 &1015166833 --- !u!114 &1015166833
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -15,7 +15,7 @@ public enum CameraType
public class CameraManager : Singleton<CameraManager> public class CameraManager : Singleton<CameraManager>
{ {
[ShowInInspector] [ShowInInspector, ReadOnly]
private Dictionary<CameraType, CinemachineCamera> _cameraDict; private Dictionary<CameraType, CinemachineCamera> _cameraDict;
private CinemachineBrain _cinemachineBrain; private CinemachineBrain _cinemachineBrain;
@ -27,28 +27,10 @@ protected override void OnAwake()
_cinemachineBrain = GetComponent<CinemachineBrain>(); _cinemachineBrain = GetComponent<CinemachineBrain>();
} }
private void Start() public void ChangeScene(string sceneName)
{ {
SceneManager.sceneLoaded += OnSceneLoaded;
}
private void OnDestroy()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
_ = RegisterCinemachineCamerasAsync(scene);
}
private async Task RegisterCinemachineCamerasAsync(Scene scene)
{
// 씬 로딩 직후는 Hierarchy 반영이 완료되지 않았을 수 있음
await Task.Yield(); // 다음 프레임까지 대기
var foundCams = FindObjectsByType<CinemachineCamera>(FindObjectsInactive.Include, FindObjectsSortMode.None); var foundCams = FindObjectsByType<CinemachineCamera>(FindObjectsInactive.Include, FindObjectsSortMode.None);
_cameraDict.Clear(); _cameraDict = new Dictionary<CameraType, CinemachineCamera>(foundCams.Length);
foreach (var cam in foundCams) foreach (var cam in foundCams)
{ {
@ -63,9 +45,7 @@ private async Task RegisterCinemachineCamerasAsync(Scene scene)
} }
} }
Debug.Log("[CameraManager] 카메라 등록 완료"); if (sceneName == "01.Restaurant")
if (scene.name == "01.Restaurant")
{ {
SwitchCamera(CameraType.BaseCam); SwitchCamera(CameraType.BaseCam);
} }

View File

@ -36,13 +36,16 @@ public async Task ChangeScene(SceneName sceneName)
while (loadSceneAsync is { isDone: false }) while (loadSceneAsync is { isDone: false })
await Task.Yield(); await Task.Yield();
// 씬 로딩 후 초기화 작업
UiManager.Instance.ChangeScene(previousSceneName, changeSceneName); UiManager.Instance.ChangeScene(previousSceneName, changeSceneName);
CameraManager.Instance.ChangeScene(changeSceneName);
KeyManager.Instance.ChangeScene(changeSceneName);
await Task.Delay(1000); await Task.Delay(1000);
await UiManager.Instance.FadeOut(); await UiManager.Instance.FadeOut();
Debug.Log($"씬 로드 및 전환 완료: {changeSceneName}"); Debug.Log($"{changeSceneName} 씬으로 전환 완료");
} }
public void ChangeSceneByIndex(int index) public void ChangeSceneByIndex(int index)

View File

@ -24,24 +24,14 @@ public class KeyManager : Singleton<KeyManager>
protected override void OnAwake() protected override void OnAwake()
{ {
base.OnAwake();
_currentPlayerInput = GetComponent<PlayerInput>(); _currentPlayerInput = GetComponent<PlayerInput>();
} }
private void Start()
{
SceneManager.sceneLoaded += OnSceneLoaded;
}
private void OnDestroy()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void OnSceneLoaded(Scene scene, LoadSceneMode mode) public void ChangeScene(string sceneName)
{ {
string currentSceneName = SceneManager.GetActiveScene().name; switch (sceneName)
switch (currentSceneName)
{ {
case "00.Title": case "00.Title":
SwitchCurrentActionMap(InputActionMaps.Ui); SwitchCurrentActionMap(InputActionMaps.Ui);

View File

@ -67,8 +67,9 @@ public async Task FadeOut()
} }
_fadeOut.Restart(); _fadeOut.Restart();
await _fadeOut.AsyncWaitForCompletion(); await _fadeOut.AsyncWaitForCompletion();
_fadePanel.SetActive(false); _fadePanel.SetActive(false);
} }

View File

@ -4,9 +4,9 @@ SpriteAtlasImporter:
externalObjects: {} externalObjects: {}
textureSettings: textureSettings:
serializedVersion: 2 serializedVersion: 2
anisoLevel: 1 anisoLevel: 0
compressionQuality: 50 compressionQuality: 0
maxTextureSize: 2048 maxTextureSize: 0
textureCompression: 0 textureCompression: 0
filterMode: 1 filterMode: 1
generateMipMaps: 0 generateMipMaps: 0
@ -17,10 +17,10 @@ SpriteAtlasImporter:
packingSettings: packingSettings:
serializedVersion: 2 serializedVersion: 2
padding: 4 padding: 4
blockOffset: 1 blockOffset: 0
allowAlphaSplitting: 0 allowAlphaSplitting: 0
enableRotation: 1 enableRotation: 0
enableTightPacking: 1 enableTightPacking: 0
enableAlphaDilation: 0 enableAlphaDilation: 0
secondaryTextureSettings: {} secondaryTextureSettings: {}
variantMultiplier: 1 variantMultiplier: 1

View File

@ -4,9 +4,9 @@ SpriteAtlasImporter:
externalObjects: {} externalObjects: {}
textureSettings: textureSettings:
serializedVersion: 2 serializedVersion: 2
anisoLevel: 1 anisoLevel: 0
compressionQuality: 50 compressionQuality: 0
maxTextureSize: 2048 maxTextureSize: 0
textureCompression: 0 textureCompression: 0
filterMode: 1 filterMode: 1
generateMipMaps: 0 generateMipMaps: 0
@ -17,10 +17,10 @@ SpriteAtlasImporter:
packingSettings: packingSettings:
serializedVersion: 2 serializedVersion: 2
padding: 4 padding: 4
blockOffset: 1 blockOffset: 0
allowAlphaSplitting: 0 allowAlphaSplitting: 0
enableRotation: 1 enableRotation: 0
enableTightPacking: 1 enableTightPacking: 0
enableAlphaDilation: 0 enableAlphaDilation: 0
secondaryTextureSettings: {} secondaryTextureSettings: {}
variantMultiplier: 1 variantMultiplier: 1