Programing/Unity(C#)
[Unity] 오브젝트가 Destory되지 않게 하기
hye3193
2023. 12. 31. 17:17
유니티에서는 Scene을 기준으로 한 씬에서 다른 씬으로 넘어갈 때 이전에 있던 씬의 오브젝트들을 전부 Destory하고 이동하게 되는데, 이 때 오브젝트가 destory되지 않게 하는 방법에 대해 알아보겠다
void Awake()
{
int numScenePersists = FindObjectsOfType<ScenePersist>().Length;
if (numScenePersists > 1)
{
Destroy(gameObject);
}
else
{
DontDestroyOnLoad(gameObject);
}
}
싱글톤 패턴을 사용하여 DontDestoryOnLoad함수를 사용한다
해당 스크립트를 적용한 오브젝트 하위에 유지시킬 오브젝트들을 넣어주면 된다
싱글톤을 사용하지 않을 경우, DontDestoryOnLoad에 gameobject가 계속 쌓여서 예상치 못한 오류를 낼 수 있기 때문에 꼭 싱글톤을 유지해줘야 한다