inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

UI 자동화 #4

마지막 점수올리기 부분에서 막혔습니다.

371

윤동근

작성한 질문수 7

0

분명 OnButtonClicked 을 public로 했는데 위에 사진에는 나오질 않습니다.

유니티를 실행했을 때 버튼을 눌러도 점수는 당연히 올라가지 않고 이게 머선일인지 모르겠습니다..

제가 어떤 부분을 잘못하고 있는지 모르겠습니다 

밑은 제 UI_Button 스크립트입니다

public class UI_Button : UI_Base

{

    enum Buttons

    {

        PointButton,

    }

    enum Texts

    {

        PointText,

        ScoreText,

    }

    enum GameObjects

    {

        TestObj,

    }

    enum Images

    {

        ItemIcon,

    }

    private void Start()

    {

        Bind<Button>(typeof(Buttons)); // 리플렉션 : 객체를 통해 클래스 정보를 분석해 내는 프로그래밍 기법

        Bind<Text>(typeof(Texts));

        Bind<GameObject>(typeof(GameObjects));

        Bind<Image>(typeof(Images));

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

        GameObject go = GetImage((int)Images.ItemIcon).gameObject;

        AddUIEvent(go, (PointerEventData data) => { go.transform.position = data.position; }, Define.UIEvernt.Drag);

    }

    int _score = 0;

    public void OnButtonClicked(PointerEventData data)

    {

        _score++;

        GetText((int)Texts.ScoreText).text = $"점수 : {_score} 점";

    }

}

unity C#

답변 3

2

Rookiss


1)
우선 툴에서 드래그-드롭으로 함수를 연동할 때는
함수에서 아무 인자나 막 받으면 안 됩니다.
위와 같이 인자를 안 받는 버전으로 하나를 만들어주면,
정상적으로 툴에서 드래그-드롭 연동이 드는 것을 확인할 수 있습니다.

2)

PointerEventData를 받는 버전은 툴에서 드래그-드롭으로 연동하는게 아니라
자동으로 코드에서 연동이 되게 됩니다.
그럼에도 함수 콜백이 작동하지 않는 이유는
AddUIEvent 내부에서 오타를 내셔서

-= 하고 +=를 해야 하는데 이를 거꾸로 하시는 바람에
기껏 추가한 콜백 함수를 다시 제거해줘서,
호출되지 않은 것입니다.

0

듕가

선생님덕에 저의실수를 찾았습니다 하마터면 못찾고 죄없는 유니티를 탓할뻔했군요 감사합니다 선생님

1

Rookiss

위 스샷만으로는 원인 파악이 되지 않는데,
일단 cs 파일을 저장한 것이 맞는지 (*없는지) 확인해보시고
혹시 모르니 모든 문제의 해결책인 유니티 껐다켜기(aka. 껐키)를 시전해보시고
그래도 해결이 안되면 전체 프로젝트 압축해서 rookiss@naver.com로 보내주시기 바랍니다.

0

윤동근

껏다가 켜도 같은 상황이라 메일로 보냈습니다

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

0

32

2

픽셀 좌표 스크린 좌표

0

32

0

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

0

72

2

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

0

83

1

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

0

82

1

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

0

74

1

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

0

81

1

달리기 애니메이션 에러

0

87

2

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

0

65

1

GetKey 오류

0

109

2

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

0

106

1

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

0

169

6

Animation blending 파라미터 계산

0

67

1

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

0

96

3

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

0

87

2

질문있습니다

0

143

2

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

0

141

3

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

0

86

2

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

0

135

2

유니티6 NavMesh 안되는분들

1

174

1

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

7

525

1

GetComponent<Poolable> 질문드립니다.

0

101

2

UI 불러오지 못함

0

117

2

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

0

155

2