ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DontDestroyOnLoad 씬 이동해도 오브젝트 유지하기
    유니티(Unity)/유니티 코딩 2019. 2. 17. 13:30

    해당 티스토리 페이지는 필자가 유니티 C# 개발을 하면서 학습한 내용들을 기록하고 공유하는 페이지입니다 !

    - 틀린 부분이 있거나, 수정된 부분이 있다면 댓글로 알려주세요 !

    - 해당 내용을 공유 or 퍼가도 좋으나, 출처를 꼭 명시해주세요 !

    - 해당 글의 모든 저작권은 Chameleon Studio에 있습니다.

    - 방문해주셔서 감사합니다 ^^



    썸네일 이미지입니다.유니티 DontDestroyOnLoad


    안녕하세요 ㅎㅎ 카멜레온입니다.


    오늘은 DontDestroyOnLoad 매서드에 대해 알아보겠습니다.


    얼마 전 유니티 게임 저장 및 로드에 관해 포스팅을 했었는데요.


    그 때 DontDestroyOnLoad를 사용한 적이 있었습니다.


    이것이 무엇인지에 대해 따로 설명하기 위해서


    DontDestroyOnLoad 포스팅을 준비했습니다.


    이번 포스팅에서는


    DontDestroyOnLoad를 설명한 후에


    이것이 유니티 내에서 어떻게 사용되고,


    어떻게 표시되는지 보여드리고 포스팅을 마무리 하겠습니다.


    그럼 시작해봅시다.



    유니티 프로젝트를 연 이미지입니다.유니티 프로젝트 열기



    우선, 유니티 내에서


    DontDestroyOnLoad 매서드가


    어떻게 보여지는 지 보기 위하여


    유니티 프로젝트를 열었습니다.


    이 젤랑 오브젝트의 스크립트에


    DontDestroyOnLoad를 넣으면 어떻게 되는지 봅시다.


    DontDestroyOnLoad 매서드는


    씬이 이동을 하더라도


    게임 오브젝트를 파괴하지 않고,


    계속 유지시켜주는 역할을 하고 있습니다.


    그렇기 때문에,


    계속 유지할 필요가 있는


    중요한 오브젝트들을 게임이 종료될 때까지


    계속 유지가 가능해집니다.


    계속 유지할 필요가 있는 오브젝트를


    예로 들면,


    시간 관리 오브젝트,


    데이터 관리 오브젝트,


    사운드 관리 오브젝트


    등등이 있겠습니다.


    그럼


    젤랑 오브젝트에 있는 스크립트를 열어서


    DontDestroyOnLoad 매서드를 넣어보겠습니다.



    아래 코드를 캡처한 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 누르고 코드를 확인해주세요.




    사용법은 간단합니다.


    유니티 시작문인 Awake나 Start에


    DontDestroyOnLoad(gameObject);


    를 넣어주면, 해당 스크립트가 달린


    오브젝트가 씬 이동에도 파괴되지 않고 유지됩니다.


    저는 젤랑 오브젝트에 달린 스크립트에


    해당 매서드를 넣었으니,


    젤랑 오브젝트가 유지되겠죠?


    이제


    유니티 에디터에서 어떻게 보여지는지


    확인해보러 가보죠.


    스크립트를 저장하고


    유니티로 돌아가 ▶을 눌러보겠습니다.





    유니티를 실행해보니,


    DontDestroyOnLoad라는


    새로운 씬 관리가 생겼습니다.


    이제 젤랑 오브젝트는 독립된 씬으로 관리되어집니다.


    씬 이동이 있어도


    게임이 종료될 때까지 파괴되지 않습니다.


    영상에서는 게임이 실행되면


    DontDestroyOnLoad로 Jellang 오브젝트가 넘어가고


    게임이 종료되면 DontDestroyOnLoad는 사라지는 것이 확인됩니다.


    여러분들은 여러분들의 프로젝트가


    씬 이동이 필요한 게임이라면,


    DontDestroyOnLoad를 사용하고


    씬 이동도 해보세요.


    씬 이동 사용법을 모르시는 분들은


    [유니티 코딩]에 있는 씬 이동 포스팅을 확인해주세요.



    여기까지 DontDestroyOnLoad에 대해서 알아보았습니다.


    이제 씬 이동을 해도 오브젝트가 파괴되지 않게 되었습니다.


    DontDestroyOnLoad는 상당히 유용하게 사용할 수 있습니다.


    물론 남용해서는 안되겠습니다.


    모든 오브젝트를 유지할 필요는 없겠지요.


    꼭 필요한 오브젝트에만 사용하길 바랍니다 ㅎㅎ


    이상으로 포스팅을 마치며,


    잘 읽으셨다면 댓글을 달아주세요.


    댓글은 저에게 다음 포스팅을 위한 힘이 됩니다 ㅠ ㅠ


    또, 카멜레온이 다뤘으면 좋겠다하는 포스팅 내용을 달아주시면,


    해당 내용에 관한 포스팅도 해보도록 하겠습니다.


    감사합니다 !


    Chameleon Studio가 만든 게임하러가기


    <젤랑점핑>

    안드로이드- market://details?id=com.Cameleon.TangTangBall

    IOS- itms-apps://itunes.apple.com/app/id1429522379



    <크러쉬팡>

    안드로이드- market://details?id=com.Chameleon.CrushPang 

    IOS- itms-apps://itunes.apple.com/app/id1450109331


    댓글

Designed by Tistory.