[Unity]/[Unity]

[Unity] Button onClick 이벤트 연결 방법(feat. AddListener())

극꼼 2022. 2. 13. 12:57
반응형


유니티에서 버튼에 함수를 연결할 때 아래와 같이 인스펙터 창에서 On Click () 창에 스크립트를 직접 연결하는 방법을 주로 사용하는데요, 이 방법은 함수 이름이 바뀌거나 하면 연결이 풀려 계속 다시 연결해줘야 하는 단점이 있습니다.

 

오늘은 직접 드래그 앤 드랍으로 연결하는 방식 말고, 연결이 끊어질 걱정없게 스크립트 내에서 함수를 연결해주는 방법을 알아보도록 합시다.


제 쿠키런 오븐브레이크 모작 포트폴리오에서 이를 활용해줄겁니다.

 

사용 방법은 간단합니다.

Button jumpButton;
void Start()
{
    //버튼 찾아서 연결해주기
    jumpButton = transform.GetChild(0).GetComponent<Button>();
    
    //AddListener로 jump 함수 연결
    jumpButton.onClick.AddListener(jump);
    
    //연결을 끊어내고 싶을 경우
    jumpButton.onClick.RemoveListener(jump);
}

void jump()
{
}

 

인자가 있는 메서드를 연결하고 싶을 경우, 람다식을 이용해줍니다.

Button jumpButton;
void Start()
{
    //버튼 찾아서 연결해주기
    jumpButton = transform.GetChild(0).GetComponent<Button>();
    
    //AddListener로 jump 함수 연결
    jumpButton.onClick.AddListener(() => jump(10));
    
    //연결을 끊어내고 싶을 경우
    jumpButton.onClick.RemoveListener(() => jump(0));
}

void jump(int h)
{
}

 

반응형