Extension Method를 통해 사용한 AddUIEvent 함수의 인자 질문
399
작성한 질문수 13
안녕하세요
강의 14분의
GetButton((int)Buttons.PointButton).gameObject.AddUIEvent(OnButtonClicked);와 관련해 문의드립니다.
해당 코드의 AddUIEvent() 함수에 인자로 들어간OnButtionClicked는
public void OnButtonClicked(PointerEventData data) {
++_score;
}
형태를 갖고 있습니다.
AddUIEvent() 함수는 GameObject, Action<PointerEventData>, Define.UIEvent 자료형을 인자를 받아야 합니다.
여기서 첫번째 인자는 Extension Method 기능으로, 세번째 인자는 default 값으로 처리되었습니다.
두 번째 인자로 사용된OnButtionClicked 함수의 원형을 보면 매개변수로 PointerEventData 자료형의 값을 받아야 하지만 여기서는 단순히 함수명만 적었음에도 오류가 발생하지 않습니다.
이 이유는 AddUIEvent 함수를 통해 OnPonterClick()에서 OnClickHander.Invoke(eventData)로 PointerEventData를 보내주고 있으니 알아서 처리되는 것인가요?
감사합니다.
답변 1
2
Action<PointerEventData>의 의미는 [PointerEventData를 함수 인자로 받는 함수]를 받아줄 수 있다!
~는 것이지 당장 PointerEventData를 인자로 넣어달라는 의미가 아닙니다.
public void OnButtonClicked(PointerEventData data) {
또한 이 요구사항을 만족하니 문제가 없겠죠. (PointerEventData를 인자로 받는 함수임)
따라서 추후 PointerEventData를 이용해 Invoke를 하는 것이 가능한 셈이고
추후 보내주니 알아서 처리된다기 보다는
애당초 최초 요구사항은 [PointerEventData를 인자로 받는 함수]였습니다.
0
항상 빠르게 답변을 주시네요... 답변을 받을 때마다 놀랍기도 하고 감사하게 생각합니다.
Action<>에 대해 제가 잘못 이해하고 있었네요. C# 문법에서 막연히 이해하고 사용하고 있던 것에 대한 부작용들이 터지고 있는 UI 파트네요. 강의 참고하며 부족한 부분들 집중적으로 공부하도록 하겠습니다.
감사합니다.
Pivot을 마우스로 클릭하고 드래그해도 움직이 않아서 혹시 아시는 부분이 있나 해서 문의 남깁니다.
0
25
1
ResourceManager 클래스 관련 질문
1
53
2
몬스터 HP 게이지바 이동
0
25
1
매니저 관련 질문이 있습니다.
0
81
2
비쥬얼 스튜디오에서 unity연결이 없습니다.
0
84
2
UI 기능 관련 질문이 있습니다!
0
77
2
픽셀 좌표 스크린 좌표
0
61
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
113
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
102
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
110
1
Input 적용과 관련하여 질문 있습니다.
0
100
1
디버그 불가.. Unity에 연결 불가
0
110
1
달리기 애니메이션 에러
0
104
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
76
1
GetKey 오류
0
137
2
에셋을 어디에 올려두신지 알 수 있나요?
0
116
1
재귀호출? 오류나는데 왜 이래요 ?
0
191
6
Animation blending 파라미터 계산
0
77
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
120
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
98
2
질문있습니다
0
164
2
아 이거 소스코드 같은거 없나요?
0
160
3
질문 드립니다. string.IsNullOrEmpty(name)
0
96
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
144
2





