작성
·
364
2
AddUIEvent(go, (PointerEventData data) => { go.transform.position = data.position; }, Define.UIEvent.Drag);
여기서 Action<PointerEventData> action 자리에 저 람다식을 넣을 수 있는 이유가 뭔가요?
그리고
GetButton((int)Buttons.PointButton).gameObject.AddUIEvent(OnButtonClicked);
여기서 ObubttonClicked를 Action<PointereventData>에 넣을수 있는 이유가 뭔가요?
답변 2
1
Action<PointerEventData>는
- PointerEventData를 input으로
- void를 output으로 받는 어떤 함수 타입도 받을 수 있으니
lamba를 만들 때 시그니처를 맞춰주면 Action<> 자리에 넣어줄 수 있습니다.
OnButtonClicked도 마찬가지입니다.
delegate 사용법중 Observer 패턴으로 만들기 위해
함수를 '기억'하는 용도도 있지만
그냥 정말 저렇게 함수 자체를 변수도 받는 역할도 합니다.
0