Unity에서는 씬(Scenes)을 사용하여 게임을 구성할 수 있습니다. 씬은 게임 화면의 일부분을 의미하며, 여러 개의 씬을 조합하여 게임을 만들 수 있습니다. 씬을 전환할 때, 기존에 로드되어 있던 오브젝트들은 파괴됩니다. 그러나, DontDestroyOnLoad 함수를 사용하여 특정 오브젝트를 파괴하지 않고 유지할 수 있습니다.
DontDestroyOnLoad 함수
DontDestroyOnLoad 함수는 특정 오브젝트를 씬 전환 시 파괴되지 않도록 합니다. 이 함수를 사용하면, 특정 오브젝트가 다른 씬에서도 유지될 수 있습니다.
using UnityEngine;
public class Example : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(gameObject);
}
}
위 코드에서는 Awake 함수에서 DontDestroyOnLoad 함수를 호출하여 자신의 게임 오브젝트를 파괴하지 않도록 합니다. 이 코드를 사용하면, 이 스크립트가 적용된 게임 오브젝트는 다른 씬에서도 계속 유지됩니다.
주의사항
DontDestroyOnLoad 함수를 사용할 때에는 몇 가지 주의사항이 있습니다.
1. 중복 호출
DontDestroyOnLoad 함수는 한 번만 호출해야 합니다. 만약, 같은 게임 오브젝트에 대해 DontDestroyOnLoad 함수를 여러 번 호출하면, 예기치 않은 동작이 발생할 수 있습니다.
2. 다른 오브젝트와의 충돌
DontDestroyOnLoad 함수를 사용하여 유지되는 게임 오브젝트는 다른 씬에서도 계속해서 유지됩니다. 따라서, 같은 이름의 게임 오브젝트가 다른 씬에서도 존재할 경우, 예기치 않은 동작이 발생할 수 있습니다.
예제
다음은 DontDestroyOnLoad 함수를 사용하여 특정 오브젝트를 유지하는 예제 코드입니다.
using UnityEngine;
public class Example : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(gameObject);
}
}
위 코드에서는 Awake 함수에서 DontDestroyOnLoad 함수를 호출하여 자신의 게임 오브젝트를 파괴하지 않도록 합니다. 이 코드를 사용하면, 이 스크립트가 적용된 게임 오브젝트는 다른 씬에서도 계속 유지됩니다.
결론
Unity에서 DontDestroyOnLoad 함수를 사용하여 씬 전환 시 파괴되지 않는 오브젝트를 유지할 수 있습니다. DontDestroyOnLoad 함수를 사용할 때에는 중복 호출과 다른 오브젝트와의 충돌에 주의해야 합니다. 이 함수를 사용하면, 게임 오브젝트를 다른 씬에서도 계속해서 사용할 수 있습니다.
'Unity' 카테고리의 다른 글
Unity : UnityEngine.Pool 오브젝트 풀링 (0) | 2023.04.21 |
---|---|
Unity Component : SpriteRenderer (0) | 2023.04.17 |
Unity에서 Resources 클래스 사용하기 (0) | 2023.03.27 |
Unity에서 플레이어 데이터를 JSON 파일로 저장하기 (0) | 2023.03.26 |
Unity 카메라(Camera) 컴포넌트 (1) | 2023.03.25 |