Inflearn brand logo image

Inflearn Community Q&A

yaeho08299994's profile image
yaeho08299994

asked

[Unity6] Collaborative Survival Game Development - Steam Release Challenge Journey

(Added on 2025.07.13) Skill Orb

스킬쿨타임UI관련

Resolved

Written on

·

43

0

SetSkillFrame함수에서 먼저 frame들을 다 삭제시키고 다시 생성하고있는데요 frame내에서 saveCooltime도 다 삭제가되니 레벨업을하고 다시 UI가 초기화될때 쿨타임도 아예 초기화가 되버리는 것같은데 제가 놓친부분이 있나요? 그리고 SetSkillFrame함수는 MANAGER.SESSION.onSelectedCard 델리게이트에 바인딩 시켜놓으면 되는건가요?

C#unity유니티6

Answer 2

0

pinousg6033님의 프로필 이미지
pinousg6033
Instructor

안녕하세요! 말씀해주신 부분 확인해보니, 말씀하신 대로 SetSkillFrame 함수에서 기존 frame들을 전부 삭제한 후 다시 생성하는 방식이라, 쿨타임 관련 데이터(saveCooltime)도 함께 초기화되어 버리는 문제가 있었던 것 같습니다.
정확한 원인 파악을 위해 저도 다시 한번 더 확인해보려고 합니다. 약간의 실수가 있었던 것 같고, 관련된 내용은 다음 주 중에 다시 정리해서 공유드리겠습니다.

말씀 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 시엘님.

SetSkillFrame 함수와 관련된 질문에 대해 설명드리겠습니다.

쿨타임 UI 초기화 문제

  1. 쿨타임 초기화 문제:

    • SetSkillFrame 함수 내에서 프레임을 삭제하고 다시 생성하는 과정에서 모든 관련 데이터를 초기화하는 문제가 발생할 수 있습니다. 이 과정에서 쿨타임이 저장되지 않고 초기화되는 것 같습니다.
    • 해결 방법으로는 현재 쿨타임 값을 별도의 데이터 저장소나 변수에 저장해 두었다가, 프레임을 다시 생성할 때 이 데이터를 사용하도록 구현하는 방법이 있습니다.
  2. 프레임에 대한 관리:

    • 모든 UI 요소를 재생성하는 방식보다는, 기존의 UI 요소를 업데이트하는 방식을 고려해보세요. 이 경우 쿨타임 데이터를 유지하기가 더 쉬워집니다.

델리게이트 바인딩

  • onSelectedCard 델리게이트:
    • SetSkillFrame 함수를 MANAGER.SESSION.onSelectedCard 델리게이트에 바인딩하여, 카드가 선택될 때마다 해당 UI 요소를 업데이트 하는 방법은 좋은 접근입니다.
    • 다만, 이 경우 UI와 관련 데이터 상태를 항상 최신으로 유지하기 위해, 프레임을 업데이트할 때 쿨타임 데이터를 재설정하는 로직을 포함해야 합니다.

아래 링크에서 유사한 문제에 대한 해결책이나 조언을 확인할 수 있습니다:

위의 방법을 통해 문제를 해결해 보시길 바랍니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

yaeho08299994's profile image
yaeho08299994

asked

Ask a question