유니티 DontDestroyOnLoad 오브젝트 유지하기
- 프로그래밍/유니티
- 2022. 11. 13.
250x250
유니티 DontDestroyOnLoad 오브젝트 유지하기.
안녕하세요.
오늘은 씬이 바뀌어도 오브젝트가 파괴되지 않도록 해주는 DontDestroyOnLoad를 사용해보겠습니다.
- 유니티에서 DontDestroyOnLoad 적용 오브젝트 생성.
- 유니티에서 확인해보기.
유니티에서 DontDestroyOnLoad 적용 오브젝트 생성.
먼저 Scene이 바뀌어도 오브젝트가 존재하는 것을 확인하기 위해 씬을 두개 만들어줍니다.
두개의 씬중에 1번 씬에 Cube sprite를 두개 만들어주겠습니다.
이제 씬을 바꾸는 함수를 작성하겠습니다.
이 함수를 사용해 씬을 불러오면 아직 아무것도 하지 않았기 때문에 아직은 오브젝트가 삭제됩니다.
using UnityEngine.SceneManagement;
/// <summary>
/// 씬 불러오기
/// </summary>
public void ChangeSin()
{
SceneManager.LoadScene("2");//씬 이름 넣기.
}
DonDestroyOnLoad를 Start()에 넣고 Cube오브젝트에 해당 스크립트를 넣어보겠습니다.
void Start()
{
DontDestroyOnLoad(this.gameObject);
}
확인해보기.
상단의 메뉴(File)->Build Setting으로 들어갑니다.
Build Setting에서 씬 을 추가합니다.
Scene1, Scene2는 다음과 같습니다.
Scene1에서는 2D 큐브 스프라이트 두개(한개는 DonDestroyOnLoad), 씬변경 스크립트를 포함한 게임오브젝트.
Scene2에는 아무것도 없습니다.
실행결과- Scene1.
실행결과 Scene2.
삭제.
삭제는 다른 오브젝트처럼 Destroy(gameObject)로 가능.
로딩할때만 삭제 안되는겁니다.
https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html