본문 바로가기

Programming/유니티

유니티 (Unity) - Button의 OnClick Listener 사용법

onclick event

오늘은 유니티 UGUI에서 가장 많이 사용되는 Button의 기능 중에 onClick 이벤트를 Listener로 등록과 해지하는 방법에 대해서 알아보겠습니다.

목차
1. Button에 이벤트 등록하기
2. 등록된 이벤트를 모두 해제하기
3. 등록된 이벤트 중 특정 이벤트만 제거하기
4. 일반적인 이벤트 등록 시점과 해제 시점

----

----

Button에 이벤트 등록하기

이벤트를 등록하는 방법에는 다음과 같이 세 가지로 등록할 수 있습니다.

1. 스크립트안에 구현된 함수를 등록
2. 람다식으로 함수를 등록
3. UnityAction 등록

스크립트의 함수 등록

void AddOnClickMyFunction(Button button)
{
    button.onClick.AddListener(MyFunction);
}
void MyFunction()
{
    //버튼의 기능을 구현 
}

람다식 등록

void AddOnClickLambda(Button button)
{
    button.onClick.AddListener(() => {
        //버튼의 기능을 구현
    });
}

UnityAction 등록

void AddOnClickUnityAction(Button button)
{
    UnityAction onclickAction = () => {
        //버튼 기능 구현
        Debug.Log("click");
    };
    button.onClick.AddListener(onclickAction);
}

 

등록된 이벤트 모두 해제하기

void RemoveOnClickListenerAll(Button button)
{
    //등록한 onclick 모든 함수를 제거
    button.onClick.RemoveAllListeners();
}

 

등록된 특정 이벤트만 제거하기

UnityAction onclickAction;

void AddOnClickFunction(Button button)
{
    onclickAction = () => {
        //버튼 기능 구현
        Debug.Log("click");
    };
    button.onClick.AddListener(onclickAction);
}

void RemoveOnClickListener(Button button)
{
    //등록한 onclick 함수를 제거
    button.onClick.RemoveListener(onclickAction);
}

 

일반적인 이벤트 등록시점과 해제시점

Button b;

//보통 버튼 onclick 함수를 추가하는 시점 
private void OnEnable()
{
    AddOnClickMyFunction(b);
    or
    AddOnClickLambda(b);
    or
    AddOnClickUnityAction(b);
}
//보통 버튼 onclick 함수를 제거하는 시점
private void OnDisable()
{
    RemoveOnClickListenerAll(b);
}

 

 

구글 스프레드시트를 Json 파일로 저장하기

Json 오늘은 구글 스프레드시트의 정보들을 Json 형식으로 파일 저장해보겠습니다. ---- ---- 화살표로 표시되있는 곳을 눌러 크롬의 확장 프로그램 관리에 진입합니다. 이제 확장프로그램 화면에서

moblieandlife.tistory.com

 

일잘러 사장님의 구글 스프레드시트 기초 팁

문서관리 회사원이든 자영업자든 일 잘하는 사람이 되기 위한 시작은 문서관리입니다. 오늘은 초보 커피 사장님이 되어 구글 스프레드시트를 통해 제품관리를 해보도록 하겠습니다. 구글 스프

moblieandlife.tistory.com

 

청년 주택드림 청약통장, 은행비교

청년 주택드림 청약통장 분양가 6억원 이하 청약에 당첨되면 분양대금의 최대 80%까지 연 최저1.5% ~ 2.2%대 저리 대출을 받을 수 있는 청년주택드림 청약통장이 21일 출시된다. 서울에서 분양가 6억

moblieandlife.tistory.com

 

유니티(Unity) 프로젝트 점프게임 만들기 : [1] 시작

목표 아주 단순한 점프게임을 만들어서 광고를 붙이고 광고수익을 발생 시켜보는 것이 이 프로젝트의 목표입니다. 서버도 없고 단지 클라이언트로 로그라이크형의 게임을 만들것이기 때문에

moblieandlife.tistory.com