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);
}
'Programming > 유니티' 카테고리의 다른 글
유니티 (Unity) - Illegal character in scheme name at index 0 (0) | 2024.02.28 |
---|---|
유니티 (Unity) Animator로 2d Animation 재생(Play) (0) | 2024.02.24 |
유니티 (Unity) Rigidbody2d velocity 활용법 (0) | 2024.02.20 |
유니티(Unity) 프로젝트 점프게임 만들기 : [7] 플렛폼 생성 (0) | 2024.02.18 |
유니티 (Unity Basic) 이미지 적용 (Image Drag and Drop) (0) | 2024.02.16 |