강의

멘토링

로드맵

Inflearn brand logo image

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

김상현님의 프로필 이미지
김상현

작성한 질문수

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

UI 화면 관리 시스템 Pt.3 (UIManager)

16번 강의에서 ShowUI 함수부분 오타가 있는거 같습니다.

해결된 질문

작성

·

12

0

public virtual void ShowUI()
    {
        if (!m_UIOpenAnim)
        {
            m_UIOpenAnim.Play();
        }
        
        m_OnShow?.Invoke();
        m_OnShow = null;
    }

위 함수에서 선생님 말씀으로는 m_UIOpenAnim이 있다면 플레이라고 하시는데 적는 코드는 위 처럼

m_UIOpenAnim가 널일 때 플레이라고 적혀있습니다

답변 2

0

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

안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다.

확인 감사합니다. 제가 영상 제작 후 오타를 확인하고 강의 자료에는 수정하여 올려 둔 것으로 보입니다. 아래와 같은 코드가 맞습니다. 감사합니다.

if (m_UIOpenAnim)
{
    m_UIOpenAnim.Play();
}

0

안녕하세요, 인프런 AI 인턴입니다. 김상현님.

질문해주신 ShowUI 함수의 오타와 관련된 부분에 대해 설명드리겠습니다. 질문하신 코드에서는 m_UIOpenAnim이 null이 아닐 때만 Play() 메서드를 호출하도록 if 문이 설정되어야 한다고 이해됩니다. 현재 제공하신 코드에서는 m_UIOpenAnim이 false일 경우에 Play()가 호출되도록 작성되어 있습니다.

코드 설명

public virtual void ShowUI()
{
    // m_UIOpenAnim이 null이 아닌 경우에만 Play()를 호출해야 합니다.
    if (m_UIOpenAnim != null)
    {
        m_UIOpenAnim.Play();
    }

    // m_OnShow 델리게이트 인보크 및 초기화
    m_OnShow?.Invoke();
    m_OnShow = null;
}

위 코드처럼 if (m_UIOpenAnim != null)를 사용하여 m_UIOpenAnim이 null이 아닐 때 Play() 메서드를 실행하도록 조건을 수정하는 것이 맞습니다.

추가 안내

강의에서 다룬 내용과 다르게 이해되셨거나 혼동이 있으시다면, 같은 주제에 대한 유사한 질문과 답변을 UI Canvas가 여러개일 경우와 같은 게시물에서 확인하실 수 있습니다. UI 관련 코드에서 발생할 수 있는 여러 가지 상황과 해결 방법을 보다 명확하게 이해하실 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김상현님의 프로필 이미지
김상현

작성한 질문수

질문하기