인프런 커뮤니티 질문&답변
PlayPopup 스크립트 질문
작성
·
273
0
110 번째 줄에 GetButton 함수에서
BindEvent(람다식) 을 사용하셨는데 Action에 대한 인수로써 ShowTab함수가 쓰이는게 맞나요?
맞다면 굳이 람다식으로 작성하신 이유가 있는지 궁급합니다
BindEvent(ShowTab()) != BindEvent(()=> ShowTab())
이 무슨 차이가 있는지요
그리고 매개변수(GameObject, Action, enum)값이 들어가던데 go는 자기자신의 객체, action은 위에 말씀드렸던 함수, enum값은 초기값 제공해서 사용이라고 생각하면 되는지도 알려주시면 좋겠습니다
답변 1
0
Rookiss
지식공유자
BindEvent는 Action 즉 인자가 없는 함수를 받아주기 때문입니다.
void OnClickAbilityButton()
{
ShowTab(PlayTab.Ability);
}
이런 시리즈들을 각각 4개를 만들어줄 수고 BindEvent와 연결시켜줘도 되지만,
너무 반복적이고 불필요한 함수들이 생성되니
그냥 편하게 람다로 만들어준 것이죠.
위의 OnClickAbilityButton 함수의 정의와
람다로 정의된 () => ShowTab(PlayTab.Ability);
은 사실상 동일합니다.





