강의

멘토링

로드맵

Inflearn brand logo image

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

김민성 (로로로로로로)님의 프로필 이미지
김민성 (로로로로로로)

작성한 질문수

유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

유저 재화 관리 및 커스텀 메뉴 (UserGoodsData, GoodsUI, CustomTools)

LoadData함수가 호출되지 않습니다.

해결된 질문

작성

·

47

·

수정됨

0

콘솔.PNG.webp

UserGoodsData클래스와 UserSettingsData클래스에서 사운드, 골드, 젬의 값이 바뀌어도 다시 실행하면 Default값으로 계속 초기화됩니다.
UserDataManager의 LoadData함수가 호출되지않는 이유를 잘 모르겠습니다.

추가로 레지스트리 편집기에서 확인해봤을 때, 커스텀메뉴를 통해 젬과 골드를 늘리면 레지스트리값은 변화하지만, 실행하면 초기화되는 상황입니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 김민성(로로로로로로)님.

LoadData 함수가 호출되지 않는 문제는 개발 중 여러 가지 원인에 의해 발생할 수 있습니다. 특히 유니티 환경에서는 데이터 저장과 불러오기가 정확하게 진행되지 않을 수 있습니다. 문제 해결을 위해 다음의 사항을 확인해 보세요.

문제 해결 단계:

  1. 함수 호출 시점과 순서 확인:

    • LoadData 함수가 Start 또는 Awake에서 적절한 시점에 호출되고 있는지를 확인해 보세요. 만약 씬이 로드되기 전에 호출되거나, 다른 오브젝트의 초기화가 완료되기 전에 호출된다면 의도한 대로 작동하지 않을 수 있습니다.
  2. PlayerPrefs 저장 확인:

    • 데이터가 저장되는 로직, 특히 PlayerPrefs.Save()가 호출되는 부분을 확인해 보세요. 만약 이를 명시적으로 호출하지 않아 데이터를 저장하지 않고 있다면, 재실행 시 기본값으로 초기화될 수 있습니다.
  3. 실행 시 기능 확인:

    • UserDataManager가 초기화될 때 제대로 된 데이터가 불러와지는지에 대한 디버깅 로그를 추가해 보는 것이 도움이 될 수 있습니다. Debug.Log를 사용하여 함수 호출 시점과 불러오는 데이터의 값을 확인해 보세요.
  4. 함수 내부 로직 확인:

    • LoadData 함수 내부에서 데이터를 불러오는 로직이 올바른지, 그리고 PlayerPrefs.GetX 메소드를 통해 정확히 불러와지고 있는지 검토해 보세요.
  5. 스크립트 애셋 및 오브젝트 상태 확인:

    • UserDataManager 오브젝트가 탐색되지 않거나, 씬에서 비활성화되어 있는지 등에 대한 부분도 확인이 필요합니다. 이는 FindObjectOfType 메소드를 통해 오브젝트를 가져오는 데 문제가 생길 수 있습니다.

추가 참고 자료:

위 방법들을 통해 문제를 해결할 수 있었으면 좋겠습니다. 여전히 문제가 해결되지 않거나 추가적인 어려움이 있다면 다시 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김민성 (로로로로로로)님의 프로필 이미지
김민성 (로로로로로로)

작성한 질문수

질문하기