250430 TIL

박소희·2025년 4월 30일

Unity_7기

목록 보기
81/94

씬 전환 시 함수 호출 순서
Awake -> OnEnable -> sceneLoaded -> Start
순서에 맞춰서 초기화를 해줬다. Start 다음에 호출해야할 함수들은 코루틴으로 한 프레임 늦춰서 호출시켜줬다.

    private void OnStageSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        if (scene.name == "Stage_Scene")
        {
            TimelineManager.Instance.LoadBlocks(blockIds);
            RhythmManager.Instance.OnStart?.Invoke();

            StartCoroutine(DelayInit());
            SceneManager.sceneLoaded -= OnStageSceneLoaded;
        }
    }
    
    private IEnumerator DelayInit()
    {
        yield return null;
        for (int i = 0; i < TimelineManager.Instance.PlacedBlocks.Count; i++)
        {
            RhythmManager.Instance.rhythmActions.Add(TimelineManager.Instance.PlacedBlocks[i].GetComponent<IRhythmActions>());

        }
        RhythmManager.Instance.StartMusic();
    }

0개의 댓글