본문 바로가기

Unity/Unity2D_TopDown

Unity2D_TopDown -UI (2) 판넬Ui 껏다 켜기

3. 판넬이 없는 상태에서 -> 스페이스바 눌러서 스캔하면  -> talkPanel 뜨고 -> 방향키 다 먹통 -> 다시 스페이스바 눌르면 talkPanel 사라짐 구현

 

3-1 : 방법(1) 

PlayerMove에 bool값 stopAction 선언 및 stopAction이 true면 플레이어 이동이 먹통이 되도록 삼항 연산자 이용

     스캔할 물체 앞에서 스페이스 바를 눌렀을때 GameManigerScript로 전해지는 매개변수로 stopAction 추가

GameManiger 오브젝트의 Public PlayerMove에 Player 오브젝트 드래그앤 드랍

 

3-2 : 방법(2)

최초 계층구조에서 Image를 비활성화 하고 시작

  리펙토링

*결론적으로 단순히 키를 눌렀을때와 같이 어떠한 부가적인 조건이 없는 상태에서 같은 행위를 한번 더 함에 따라 작동하거나 작동하지 않거나 하는 로직을 구현할때

예를들어 스페이스를 눌렀을때 무엇인가 작동하게되고 또 다시 눌렀을때 작동하지 않게 하려면  

 isAction과같은 bool값을 선언(기본값 false)하고 SetActive(isAction)등을 통하여 아래와 같이 isAction 자기 자신의

상태만을 이용하여 구현 할 수 있다

다만 어떠한 부가적인 조건이 있는 상태(예를 들어 스페이스바를 눌르면 i의 값이 1씩 증가하는데 i값이 5가 되면 그때서야 isACtion이 false가 된다 와 같은 상황)에서는 그 조건에 따라 isAction이 true or false가 되도록 하는 것이 좋다