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

이나경님의 프로필 이미지
이나경

작성한 질문수

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

Button Event

button 눌렀을 때 오류 발생

작성

·

911

2

제가 작성한 코드이구요, 이렇게 하고 실행하면 버튼을 눌렀을 경우 점수가 올라가야 하는데

버튼을 누르면 이러한 오류가 발생합니다. 이 전에 buttonclicked 이벤트 발생하게 하는 건 됐는데, 이게 안 돼요 ㅠ.ㅠ 도와주세요 

답변 10

4

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

우선 유니티 2020.~ 최신 버전으로 하실 때는
이전에 발생 안하던 버그들이 몇개 생깁니다.
OnUpdate가 InputManager Init보다 먼저 호출되는 것 같네요.

먼저 위와 같이 EventSystem.current 널 체크를 추가하시기 바랍니다.

그 다음 위 질문에서 나온 Text를 추가해주신 다음.

프리팹에서도 드래그-드롭으로 점수 텍스트를 연결해주시기 바랍니다.

완성! :)

0

2020.3.4f1을 사용하고 있습니다. 위의 해결책대로 그대로 따라하였는데 여전히

NullReferenceException: Object reference not set to an instance of an object

UI_Button.OnButtonClicked () (at Assets/Scripts/UI/UI_Button.cs:16)

UnityEngine.Events.InvokableCall.Invoke () (at <9baebf9af86541678fd15bfdbf5f26eb>:0)

UnityEngine.Events.UnityEvent.Invoke () (at <9baebf9af86541678fd15bfdbf5f26eb>:0)

UnityEngine.UI.Button.Press () (at 

라고 오류가 발생합니다.

다른해결방법은 없을까요?

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

NULL 크래시는 어떤 아이가 NULL인지를 살펴보고, 원인을 파악해보면 됩니다.
다시 한 번 살펴봐도 원인을 모르겠으면 전체 프로젝트 압축 후
rookiss@naver.com로 보내주시기 바랍니다.

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


조금 미묘한 상황인데요.
실제 Scene에 배치된 UI_Button을 살펴보면,
OnClick() 쪽에 연결된 Object가 Prefab의 UI_Button 오브젝트로 되어 있습니다.

Prefab을 Instantiate에서 사용하지 않고
Scene에 배치된 아이를 바로 사용하기 때문에
아래와 같이 Scene에 배치된 애 것으로 교체해주시면 되겠습니다.

 

답변 감사합니다 해결했습니다!

0

늦은 시간임에도 불구하고 친절한 답변 너무 감사합니다!!!!

0

보냈습니다! 감사합니다!ㅠㅠ

0

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

너무 오래돼서 기억이 잘 안나는데 메일로 압축해서
rookiss@naver.com로 보내주시기 바랍니다.

0

저도 같은 오류가 발생하는데 해결방법은 어디를 참고하면 좋을까요?

0

이나경님의 프로필 이미지
이나경
질문자

보냈어요. 감사합니다 ㅠ

0

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

메일로 압축해서 보내주시면 살펴볼게요

rookiss@naver.com으로 부탁드립니다

0

이나경님의 프로필 이미지
이나경
질문자

연결했는데도 같은 오류가 발생해요............ ㅠㅠ 어떻게 해야 하나요

0

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

에러 로그를 보니 18번째 줄에서 null 크래시가 발생했네요.
_text가 null이라서 그런 것 같은데,
Text를 찾아서 실제로 유니티 UI에서
드래그 드롭으로 연결을 시켜줘야 합니다.
(강의에서 13:30초 부분을 참고 바랍니다)

이나경님의 프로필 이미지
이나경

작성한 질문수

질문하기