ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니티 OnApplicationPause 일시정지 사용법 / 에디터에서 확인 포함
    유니티(Unity)/유니티 코딩 2019. 2. 9. 14:41

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

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

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

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

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



    썸네일 이미지입니다.유니티 OnApplicationPause 사용법


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


    오늘은 OnApplicationPause를 사용하여, 일시정지를 구현해보려고 합니다 !


    게임을 만들다보면, 유저들이 갑자기 어떠한 일이 생겨서 홈버튼을 누르거나,


    홀드버튼을 눌러서 생긴 일을 처리하고 오는 동안,


    게임이 일시 정지 상태가 되어야 할 필요가 있을겁니다.


    예를 들면, 디펜스형 게임 같은 경우에는 몇 분에 한 번씩 몬스터가 나오는데,


    유저가 홈이나 홀드버튼을 눌러도 게임이 진행된다면 안되겠지요.


    그래서 ! 이러한 상황을 감지해주는 매서드가 바로 OnApplicationPause입니다.


    어떻게 사용하는 지 알아봅시다 !



    아래 코드를 캡처해놓은 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 눌러서 코드를 확인해주세요.




    이러한 형태로 OnApplicationPause를 사용하시면, 일시정지를 구현할 수 있습니다.


    간략한 설명을 덧붙히자면,


    bool 값으로 bPaused를 선언해줍니다.


    유니티 내에서 함수 실행 순서를 보시면 아시겠지만,


    OnApplicationPause 이벤트를 감지할 수 있습니다.


    그렇기에 OnApplicationPause가 실행되면 OnApplicationPause의 (bool pause)가 True가 됩니다.


    pause가 True가 되기 때문에,


    if (pause) 문이 실행됩니다.


    이렇게 일시정지가 되는 것이죠.


    그럼 미리 선언한 bPaused는 어디서 쓰느냐?


    유저가 다시 돌아왔을 때 사용합니다.



    자세히 보시면,


    if (pause) 문에서 bPaused가 True가 되어 있습니다.


    유저가 다시 돌아왔을 때,


    OnApplicationPause의 (bool pause)는 실행되지 않으니,


    그 밑에 있는 else 절이 실행되고,


    bPaused = false; 로 다시 bPaused를 false로 돌려주는 것이죠.


    이렇게 하면, 일시정지와 돌아옴을 반복할 수 있는 것입니다.


    코드에 대한 설명은 여기까지 하고,


    코드를 저장한 후, 유니티로 돌아와서 ▶을 눌러봅시다.





    일시정지가 잘 구현됩니다.


    일시정지가 되는 지 확인하려면 유니티 에디터의 창 밖 바탕화면을 눌러보세요.


    다시 돌아오려면, 유니티를 누르시고요 ㅎㅎ


    이렇게,


    스마트폰으로 빌드해서 홈버튼, 홀드버튼 눌러 확인할 필요없이,


    유니티 에디터 내에서도 일시정지가 잘 되는 것을 확인할 수 있었습니다.


    만약, 창 밖을 눌러도 일시정지 구현이 안되시는 분은 밑을 좀 더 따라와주세요.



    이미지가 안보이시면, 텍스트를 확인해주세요.에디터 내 일시정지 표시 과정입니다.



    안 되시는 분들은


    우선,


    유니티 상단 바에서 File > Build Settings을 엽니다.



    이미지가 안보이시면, 텍스트를 확인해주세요.에디터 내 일시정지 표시 과정입니다.



    창이 나오면,


    Player Settings을 누릅니다.



    이미지가 안보이시면, 텍스트를 확인해주세요.에디터 내 일시정지 표시 과정입니다.



    그러면 Inspector창에 Player Settings 설정 창이 나오게 됩니다.


    Settings for PC, Mac & Linux Standalone을 클릭하고,


    Resolution and Presentation 세팅 창에서


    Run In Background의 체크를 해제해줍니다.


    이렇게 한 후에 다시 ▶을 누르신다면,


    위의 영상처럼 일시정지 구현이 콘솔창에 잘 찍힐겁니다 ㅎㅎ



    이미지가 안보이시면, 텍스트를 확인해주세요.에디터 내 일시정지 표시 과정입니다.



    추가로 크러쉬팡에서 구현한 일시정지 캡처 사진으로 마무리하겠습니다.


    여러분들도 개발하시는 게임 형태에 맞게,


    OnApplicationPause를 응용해보세요.


    여기까지 OnApplicationPause 사용하는 법을 마치겠습니다.


    다음 포스팅에서는 OnApplicationQuit을 다뤄보도록 하겠습니다.


    궁금한 사항은 댓글에 달아주세요.


    또, 카멜레온이 다뤘으면 좋겠다하는 포스팅 내용을 달아주시면, 해당 내용에 관한 포스팅도 해보도록 하겠습니다.


    감사합니다 !


    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.