부트캠프

버튼에 리스너 달기

noyyo 2023. 9. 7. 21:06

UI중 아주 핵심적이고 자주 쓰게될 Button

클릭을 통해서 어떤 동작을 수행하고자 할 때 쓰인다.

버튼이 클릭되면 유니티에서 OnClick 이벤트를 호출하는데 이것을 이용해서 원하는 동작을 여기에 달아주면 된다.

인스펙터 창에서 직접 On Click에 함수를 넣어줄 수 있다.

수행해야 할 동작이 몇 가지 되지 않으면 인스펙터 창을 이용해 추가하는 것이 간편할 수 있지만 많은 버튼을 사용하게 되면 일일이 동작을 지정하는게 쉽지 않다.

이럴 때는 스크립트 상으로 버튼이 클릭되었을 때 무엇을 수행할지 지정해주는 것이 편하다.

이 때 Button 클래스의 onClick.AddListener(UnityAction call)을 이용해서 리스너를 달아주면 된다.

Button btn = GetComponent<Button>();
btn.onClick.AddListener(어떤 Action);

위와 같이 사용할 수 있다. 그런데 특정 행동이 한 번만 쓰인다거나 하는 이유로 매번 정의하는 것이 비효율적일 수 있다.

이럴 때는 람다식을 써서 간편하게 구현할 수 있다.

btn.onClick.AddListener(() => 수행할 동작);

이렇게 리스너를 달아주게되면 스크립트 상에서 버튼이 클릭되었을 때 수행할 동작을 지정할 수 있다.

버튼의 onClick뿐 아니라 다른 여러 이벤트등에도 동일한 방식으로 적용 가능하다.