inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

인벤토리 실습 #2

SetInfo를 이용한 아이템 이름 변경

221

명성

작성한 질문수 5

0

    public override void Init()
    {
        Bind<GameObject>(typeof(GameObjects));
        Get<GameObject>((int)GameObjects.ItemNameText).GetComponent<Text>().text = _name;

        Get<GameObject>((int)GameObjects.ItemIcon).BindEvent((PointerEventData) => { Debug.Log($"아이템 클릭! {_name}"); });
    }    
public void SetInfo(string name)
    {
        _name = name;
    }

UI_Inven_Item에 있는 내용인데

UI_Inven에서

invenItem.SetInfo("집행검 어쩌구");

를 하면 UI_Inven_Item의 _name만 바꿔줬을 뿐인데
어떻게 Component의 값 까지 바뀌는거죠?

제가 생각할 떄는 SetInfo안에
Get<GameObject>((int)GameObjects.ItemNameText).GetComponent<Text>().text = _name;

이 코드가 필요한거 같은데
어떻게 ItemNameText가 업데이트가 되는지 모르겠습니다.


 

C# unity

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
명성님의 질문에 대한 답변 드리겠습니다.

말씀하신 SetInfo 메소드는 _name 필드의 값을 바꿔주는 기능을 합니다. 그런데 UI에 있는 아이템의 이름은 어떻게 업데이트되는지 궁금해하시는 거군요. 일반적으로는 SetInfo를 호출한 후 UI 업데이트를 위해 추가적인 메소드를 호출해야 합니다.

예를 들어, 업데이트된 이름으로 UI 텍스트를 갱신하는 메소드를 만들어 볼 수 있겠죠. 아래와 같이 말이죠.

public void UpdateUI()
{
    Get<GameObject>((int)GameObjects.ItemNameText).GetComponent<Text>().text = _name;
}

이 메소드는 SetInfo가 호출된 이후에 명시적으로 호출되어야 하며, 이렇게 하면 UI에 있는 텍스트 컴포넌트가 새로운 이름으로 업데이트 됩니다.

하지만 코드 상에서는 UpdateUI 같은 메소드 호출이 보이지 않는다면, 다른 어딘가에서 이 작업을 수행하고 있는 것일 수 있습니다. 예를 들어, SetInfo 메소드가 호출될 때 이벤트를 트리거해서 해당 작업을 처리하는 리스너가 있을 수 있습니다. 또는 SetInfo 메소드 내부 또는 다른 어딘가에서 _name 필드가 할당될 때 이를 감지하고 자동으로 UI를 업데이트하는 구현이 숨겨져 있을 수도 있습니다.

제공해주신 코드만으로는 구체적인 실행 흐름을 알 수 없기 때문에, SetInfo 메소드 호출 후 어떻게 이름이 UI에 반영되는지 알기 위해서는 SetInfo가 호출되는 전체 컨텍스트 또는 UI 업데이트와 관련한 다른 코드 부분을 확인해야 할 것 같습니다.

명성님의 코드가 정상 작동하고 있다면 어딘가에서 위와 같은 UI 업데이트 작업이 이루어지고 있을 겁니다. 혹시 말씀주신 내용 이외에 관련 코드나 로직이 더 있다면 같이 살펴보는 것이 좋을 것 같습니다.

비쥬얼 스튜디오에서 unity연결이 없습니다.

0

28

2

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

0

43

2

픽셀 좌표 스크린 좌표

0

35

0

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

0

82

2

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

0

86

1

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

0

85

1

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

0

75

1

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

0

83

1

달리기 애니메이션 에러

0

89

2

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

0

66

1

GetKey 오류

0

112

2

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

0

108

1

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

0

169

6

Animation blending 파라미터 계산

0

69

1

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

0

97

3

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

0

88

2

질문있습니다

0

143

2

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

0

143

3

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

0

87

2

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

0

136

2

유니티6 NavMesh 안되는분들

1

176

1

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

7

533

1

GetComponent<Poolable> 질문드립니다.

0

103

2

UI 불러오지 못함

0

119

2