inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

UI 자동화 #4 부분에서 이해 안되는 부분 질문드립니다

해결된 질문

283

시슴

작성한 질문수 10

0

안녕하세요 

UI 자동화 #4 강의를 보다 이해가 안되는 부분이 있어 질문드립니다

UI 자동화 #4 강의 13:31초 쯤 보면

익스텐션 메소드를 이용해서 코드를 간략화 하셨습니다

간략화 한 코드를 보면

GetButton((int)Buttons.PointButton).gameObject.AddUIEvent(onButtonClicked);

라고 익스텐션 메소드를 이용해서 간략화 하셨는데

AddUIEvent 함수 정의 한 부분을 보면

public static void AddUIEvent(this gameObject go, Action<PointerEventData> action, Define.UIEvent type = Define.UIEvent.Click) 이라고 정의하셨습니다

여기서 이해가 안되는 부분은 

1.

GetButton((int)Buttons.PointButton).gameObject.AddUIEven에서 

AddUIEvent의 인자에 action과 Define.UIEvent가 들어가야 되는데

action인 onButtonClicked는 들어가있는데 왜 Define.UIEvent는 들어가지 않은 이유가 궁금합니다

2.

원래는 public void OnButtonClicked 함수에 입력받은 인자가 없었는데

강의에서 이유는 모르겠지만 하시고

onButtonClicked 함수에 pointerEventData 인자를 추가하셨는데

pointerEventData 인자를 추가 하신 이유가 궁금합니다

 

매번 자세한 답변 감사드립니다

unity C#

답변 2

0

시슴

아.. 이해됐습니다 답변감사합니다 

0

Rookiss

1.
Define.UIEvent type = Define.UIEvent.Click으로 기본값을 클릭으로 설정했기 때문에,
별도로 명시하지 않으면 클릭 상태로 간주하는 것입니다.
(사실 UI 이벤트의 대부분 상황은 클릭할 때 뭔가 일어나는 형태로 동작하죠)

2.
PointerEventData가 붙은 이유는 UI_EventHandler 클래스를 보시면 되는데
IPointerClickHandler, IDragHandler 등의 인터페이스가 PointerEventData 인자를 요구합니다.
그리고 PointerEventData에 들어가서 살펴보면
UI 인풋에 대한 정보 (클릭한 위치, 클릭한 방법 등)가 있는데
나중에라도 이 정보를 조회하고 싶을 수가 있으니,
콜백 함수에 전달하기 위해 pointerEventData를 OnButtonClicked 인자에도 추가해준 것입니다.

감사합니다!

UI 기능 관련 질문이 있습니다!

0

37

2

픽셀 좌표 스크린 좌표

0

33

0

전체적으로 코드 읽는게 굉장히 오래 걸리네요...

0

73

2

카메라 #2 수업 캐릭터 쓰러짐 해결

0

84

1

플레이어 움직임이 끝날때, 기울어짐 현상

0

83

1

Input 적용과 관련하여 질문 있습니다.

0

75

1

디버그 불가.. Unity에 연결 불가

0

82

1

달리기 애니메이션 에러

0

89

2

오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다

0

66

1

GetKey 오류

0

109

2

에셋을 어디에 올려두신지 알 수 있나요?

0

107

1

재귀호출? 오류나는데 왜 이래요 ?

0

169

6

Animation blending 파라미터 계산

0

68

1

newPos와 to지점이 겹쳐져야 하는거 아닌가요?

0

97

3

오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다

0

88

2

질문있습니다

0

143

2

아 이거 소스코드 같은거 없나요?

0

142

3

질문 드립니다. string.IsNullOrEmpty(name)

0

87

2

@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?

0

136

2

유니티6 NavMesh 안되는분들

1

176

1

Unity6 Unity-Chan Material 마젠타 문제 해결법

7

527

1

GetComponent<Poolable> 질문드립니다.

0

102

2

UI 불러오지 못함

0

118

2

UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.

0

155

2