강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

정상훈님의 프로필 이미지
정상훈

작성한 질문수

[실전 게임 코드 리뷰] 유니티 클리커 게임

프리팹 제작 및 실전 팁

PlayPopup 스크립트 질문

작성

·

273

0

110 번째 줄에 GetButton 함수에서

BindEvent(람다식) 을 사용하셨는데 Action에 대한 인수로써 ShowTab함수가 쓰이는게 맞나요?

맞다면 굳이 람다식으로 작성하신 이유가 있는지 궁급합니다

BindEvent(ShowTab()) != BindEvent(()=> ShowTab())

이 무슨 차이가 있는지요

그리고 매개변수(GameObject, Action, enum)값이 들어가던데 go는 자기자신의 객체, action은 위에 말씀드렸던 함수, enum값은 초기값 제공해서 사용이라고 생각하면 되는지도 알려주시면 좋겠습니다

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

BindEvent는 Action 즉 인자가 없는 함수를 받아주기 때문입니다.

void OnClickAbilityButton()
{
     ShowTab(PlayTab.Ability);
}

이런 시리즈들을 각각 4개를 만들어줄 수고  BindEvent와 연결시켜줘도 되지만,
너무 반복적이고 불필요한 함수들이 생성되니
그냥 편하게 람다로 만들어준 것이죠.

위의 OnClickAbilityButton 함수의 정의와
람다로 정의된 () => ShowTab(PlayTab.Ability);
은 사실상 동일합니다.


정상훈님의 프로필 이미지
정상훈

작성한 질문수

질문하기