Unity/수업 내용

[Unity 2020.3] LoadSceneAsync 비동기 씬 전환, 데이터 전달

JSH1 2021. 10. 25. 17:50

LobbyScene

씬, 하이어라키

 

빌드세팅, 파일

 

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class LoadScenePassData : MonoBehaviour
{
    public Button[] btns;
    string data;

    void Start()
    {
        for (int i = 0; i < btns.Length; i++)
        {
            int index = i;

            btns[index].onClick.AddListener(() =>
            {
                Text btnText = btns[index].transform.GetChild(0).GetComponent<Text>();
                data = btnText.text;

                AsyncOperation operation = SceneManager.LoadSceneAsync("MainScene");
                operation.completed += (AsyncOperation obj) => 
                {
                    var gameMain = GameObject.FindObjectOfType<MainScene>();
                    gameMain.Init(data);
                };
            });
        }
    }
}

 

MainScene

using UnityEngine;

public class MainScene : MonoBehaviour
{
    public void Init(string data)
    {
        Debug.LogFormat("data: {0}", data);
    }
}