유니티에서는 Scene을 기준으로 한 씬에서 다른 씬으로 넘어갈 때 이전에 있던 씬의 오브젝트들을 전부 Destory하고 이동하게 되는데, 이 때 오브젝트가 destory되지 않게 하는 방법에 대해 알아보겠다
void Awake()
{
int numScenePersists = FindObjectsOfType<ScenePersist>().Length;
if (numScenePersists > 1)
{
Destroy(gameObject);
}
else
{
DontDestroyOnLoad(gameObject);
}
}
싱글톤 패턴을 사용하여 DontDestoryOnLoad함수를 사용한다
해당 스크립트를 적용한 오브젝트 하위에 유지시킬 오브젝트들을 넣어주면 된다
싱글톤을 사용하지 않을 경우, DontDestoryOnLoad에 gameobject가 계속 쌓여서 예상치 못한 오류를 낼 수 있기 때문에 꼭 싱글톤을 유지해줘야 한다
'Programing > Unity(C#)' 카테고리의 다른 글
[Unity] 화면 밖으로 오브젝트 이동 불가하게 만들기 (0) | 2024.01.01 |
---|---|
[Unity] New Input System 사용하기 (0) | 2023.12.31 |
[Unity] TMP(Text Mesh Pro) 폰트 변경하기 (0) | 2023.12.31 |
[Coding] if return 문의 코딩 스타일(Early Return) (0) | 2023.12.31 |
[Unity] Scene 화면에 보이는 컴포넌트 아이콘 크기 축소하기 (0) | 2023.12.30 |