본문 바로가기

유니티

유니티 2D에서 씬 이동하기

728x90
반응형

유니티 2D에서 씬 이동하는 코드는 다음과 같이 작성할 수 있습니다.

using UnityEngine.SceneManagement; // 씬 매니지먼트 기능 사용을 위한 네임스페이스
 
public void ChangeScene(string sceneName)
{
SceneManager.LoadScene(sceneName); // 씬 로드 함수를 호출하여 sceneName으로 지정한 씬으로 이동
}

위 코드는 ChangeScene이라는 함수를 만들어, 인자로 전달된 sceneName에 해당하는 씬으로 이동하는 기능을 구현합니다. 이 함수를 호출하는 방법은, 예를 들어 UI 버튼 클릭 이벤트에서 OnClick 이벤트에 해당 함수를 등록하거나, 코드에서 직접 호출하는 등 다양한 방법이 있습니다.

또한, 만약 씬 이동시 전달할 데이터가 있다면, 다음과 같이 LoadScene 함수의 LoadSceneMode 파라미터를 이용해 전달할 수 있습니다.

using UnityEngine.SceneManagement;
 
public void ChangeSceneWithParams(string sceneName, object data)
{
SceneManager.LoadScene(sceneName, LoadSceneMode.Single);
SceneManager.GetActiveScene().GetRootGameObjects()[0].SendMessage("ReceiveData", data);
}

위 코드에서는 LoadScene 함수의 두 번째 파라미터로 LoadSceneMode.Single을 전달하여 새로운 씬을 로드하고, 이후 GetActiveScene 함수로 현재 씬을 가져와서 해당 씬의 루트 게임 오브젝트 중 첫 번째를 찾아서 SendMessage 함수를 호출합니다. 이를 통해 씬 이동시 전달할 데이터를 ReceiveData 함수로 전달할 수 있습니다.

728x90
반응형