21.02.10 01:50 작성
·
363
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
2021. 02. 10. 02:13
Action<PointerEventData>는
- PointerEventData를 input으로
- void를 output으로 받는 어떤 함수 타입도 받을 수 있으니
lamba를 만들 때 시그니처를 맞춰주면 Action<> 자리에 넣어줄 수 있습니다.
OnButtonClicked도 마찬가지입니다.
delegate 사용법중 Observer 패턴으로 만들기 위해
함수를 '기억'하는 용도도 있지만
그냥 정말 저렇게 함수 자체를 변수도 받는 역할도 합니다.
0
2021. 02. 10. 02:15
생각을 너무 어렵게 하고 있었나 봅니다
해답의 실마리는 람다식 가장 첫부분에 있었네요
"함수를 변수로 받을 수 있게끔 해준다"
언제나 감사드립니다