본문 바로가기
프로그래밍/Unity

Unity3d NGUI 버튼에 클릭 이벤트를 걸어보자!!

by 메르세데쓰 2015. 3. 10.
반응형

안녕하세요 메르세데스입니다! 독학으로 유니티를 공부하고 있는데요.. 만만하지 않습니다.


Unity에서 NGUI를 이용하여  버튼에 이벤트를 거는 방법을 알아보려고 합니다.  


가령 이런 거죠.. 버튼을 클릭하였을 때..  화면에 내용이 전환이 되거나 접속을 한다던가.. 이름을 변경 하거나 등등..정말 기본 중의 기본이라 생각합니다. 하지만..  NGUI를 접하여 이것저것 눌러보면서 살펴봐도 너무 생소해서 그런지 쉽지 않습니다. 



정말  UI의 강력한 툴 이라고 들었는데 처음 접하는 저에게는 막막하기 그지 없네요.. 큰 마음먹고 책도 하나 구입을 했는데.. 정말 도움도 안되고..   번역서라 문장이 매끄럽지 않아 무슨 내용인지 잘 이해도 안됩니다.  


그나마 도움이 되는 건 인터넷 검색밖에 없다고 생각합니다. 



UI Button 사용이쉽지않음UI Button 사용이쉽지않음



제가 하면서 이해가 안되는 것은..    UI Button 컴포넌트에  On Click이라는 것이 있는 걸로 봐선.. 이걸 이용하여 해보면 되지 않을까? 라는 것인데.. (물론 안되진 않을 거라 생각합니다. 다만 초보자가 쉽게 처리하기엔 쉽지 않은 기능이지 않나 하는 거죠..)  기능 상 비슷하긴 하지만 원하는 결과를 얻기가 쉽지 않다는 것입니다.



일단 목표는 버튼을 클릭 했을 때...  "Clicked!"라는 메시지를 뿌리는 겁니다.


버튼클릭용 이벤트함수버튼클릭용 이벤트함수


우선.. 버튼을 하나 만들어 놓고.. ( 프리팹으로 되어있는 버튼이 있거든요.. 이걸 끌어다가 만들어봤습니다.   )


Button을 눌렀을 때 발생하는 스크립트를 하나 만들어 게임오브젝트에 연결합니다.



스크립트를.. C#으로.. 대충 작성해 놓고..   연결을 하겠습니다.


버튼클릭용 이벤트함수버튼클릭용 이벤트함수



On Button Message라는 컴포넌트를 이용해서 사용해야 합니다. 


컴포넌트를 찾아 버튼에 붙여 넣은 후..   조금 전에 만들어 놨었던 GameCLK 오브젝트를  UI Button Message의 타겟으로 지정하고 Function Name을 만들었었던 스크립트의 메소드 이름인 "OnclkME"으로 적어 주었습니다..  대소문자를 구별하니 확인을 잘 해야겠죠?



UI Button Message  exampleUI Button Message 을 이용하여 버튼클릭이벤트 생성



실행을 눌러 테스트를 해 보니.. 위의 화면 것처럼..중앙 하단의 콘솔창에 표시가 되었습니다.


아래에 보니.. Trigger 라고....  적용할 수 있는 상황이 있네요?   마우스 클릭이나  더블 클릭 등등.. 원하는 것을 선택하면 됩니다.. 저는 클릭을 선택 하였습니다.



UI Button Message의  triggerUI Button Message의 trigger


알고 나면.. 정말 별것 아니지만..  잘 모르는 상태에서 해보려고 하니 일주일도 넘게 삽질하였네요..     


물론 [UI Button Component]--[On Click] 이벤트를 잘 연구해보면 안되진 않을 것 같은데..  시간을 두고 차차 확인해 봐야 할 것 같습니다.


이상으로 Unity3d NGUI 버튼에 클릭 이벤트를 걸어보는 방법을 알아봤습니다.






반응형

댓글