로딩 화면 구현하기(로딩 UI 방식) | 유니티

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ต.ค. 2024

ความคิดเห็น • 33

  • @devSSEM
    @devSSEM 4 ปีที่แล้ว +1

    와~~필요한 내용이었는데, 요즘 계속 잘 보고 있습니다. 감사합니다~

    • @wergia
      @wergia  4 ปีที่แล้ว

      유용한 내용이 많으면 좋겠네요 ㅎㅎ

  • @isakgo7492
    @isakgo7492 2 ปีที่แล้ว +1

    흐흐.. 따라하며 하는 공부가 재밌네요 정말

  • @gorani_TV
    @gorani_TV 4 ปีที่แล้ว +2

    와 캔버스 그룹 알파가 자식까지 되네요. 애니메이션 할 때 자식 일일히 다 했었었는데. 앞으로는 더 편해지겠네요

    • @wergia
      @wergia  4 ปีที่แล้ว

      UI의 마법스킬이죠 ㅋㅋ

  • @kelvin1003h
    @kelvin1003h 3 ปีที่แล้ว +1

    안녕하세요 베르님. 뒤늦게 유니티를 배우고 있습니다. 강의 너무나 잘 보고 있습니다.
    이번 강의 내용과 상관은 없지만 궁금한점이 있는데요...
    포트리스처럼 포탄이 맵과 충돌하면 맵이 원형으로 파괴되는 것도 구현이 가능한지요.있다면 어찌할지 조언을 듣고싶습니다.

    • @wergia
      @wergia  3 ปีที่แล้ว +1

      개발자로서 불가능하다고는 말을 못하겠습니다. 다만 개발해 본적이 없어서 알려드리려면 저도 공부가 필요할 듯 합니다.

  • @dfadgqt12
    @dfadgqt12 4 ปีที่แล้ว +3

    로딩 UI방식하고 로딩 씬방식의 결정적인 차이가 무엇인가요? 어떤 장점과 단점이 있는지 어떤때에 무엇이 쓰이는지 알고싶습니다.

    • @wergia
      @wergia  4 ปีที่แล้ว +2

      로딩 UI 방식과 로딩 씬 방식의 차이점이라면 로딩 씬 방식은 로딩 씬으로 이동하는 것을 전제로 하기 때문에 기본적으로는 페이드 인/페이드 아웃 기능 없이 갑자기 화면이 확하고 바뀝니다.
      로딩 UI 방식은 그냥 UI만 띄우는 것이기 때문에 알파 값을 조정하면서 나오게 만들면 페이드 인/페이드 아웃으로 스르륵 나타나게 하는 연출이 가능하죠.

  • @user-te1tp4lt9g
    @user-te1tp4lt9g 4 ปีที่แล้ว +1

    로딩 화면 관련으로 질문 드려봐도 될까요?
    로딩화면을 보게 된다면 팁이 추가될 경우 여러 팁이 랜덤으로 나오잖아요?
    그럴 경우엔 어떤식으로 구현이 되게 될까요?
    겉으로 보일경우 텍스트로 보여줄거같은데, 텍스트로 랜덤으로 보여주게 구현하는 방식이 궁금합니다.

    • @user-te1tp4lt9g
      @user-te1tp4lt9g 4 ปีที่แล้ว +1

      이대로 따라해봤는데, 저는 이렇게 했더니
      장면 1 > 로딩UI > 장면2가 되야하는데
      장면1 > 장면2 잠깐 비추고 > 로딩UI > 장면2로 넘어간다음
      제가 다시 수정을 했더니
      작동은 되는데
      장면2가 보였다가 로딩 UI 됬다 장면2가 되는 현상이 문제네요...

    • @wergia
      @wergia  4 ปีที่แล้ว

      팁 같은 경우에는 간단하게 파일로 저장해두고 파일에서 불러온 팁을 랜덤으로 보여주는 방식을 사용하면 됩니다.

    • @wergia
      @wergia  4 ปีที่แล้ว

      로딩화면이 보여지기 전에 다른 장면이 보이는 문제를 해결하기 위해서는 로딩 화면이 다 불러온 뒤에 씬 불러오기 작업을 시작하도록 코드를 조금 수정해보는게 좋습니다.

    • @user-te1tp4lt9g
      @user-te1tp4lt9g 4 ปีที่แล้ว +1

      @@wergia 만약 한다면 기존 코드를 어떻게 어디를 고치는게 좋을까요?

    • @user-te1tp4lt9g
      @user-te1tp4lt9g 4 ปีที่แล้ว +1

      일단 제가 이 환경과 다르게 한것은
      이미지에 배경화면을 추가했습니다.
      그외엔 전부 같게했습니다.
      결과와 다르게 장면1 > 장면2 잠깐 비추고 > 로딩UI > 장면2로 나오고
      프로그레스 바가 올라가지는 않네요.
      여기까지가 지금 제가 겪는 문제입니다.

  • @Gyokujin
    @Gyokujin 3 ปีที่แล้ว +1

    05:49 혹시 여기서 3을 곱하는 이유를 잘 모르겠는데 알 수 있을까요?

    • @wergia
      @wergia  3 ปีที่แล้ว +1

      페이드 되는 속도를 더 빠르게 해주기 위해서 입니다!

    • @Gyokujin
      @Gyokujin 3 ปีที่แล้ว +1

      @@wergia 앗 그랬군요 ㅋㅋㅋㅋ 감사합니다

  • @양준호-o7j
    @양준호-o7j 3 ปีที่แล้ว +1

    여기서 3초후에 로딩이 끝나고 다른씬으로 넘어가게 할수 있을까요?

    • @wergia
      @wergia  3 ปีที่แล้ว

      로딩이 끝나고 3초 뒤에 다음 씬으로 넘어가는 것을 원하시는건가요?
      그러면 로딩 UI가 100% 차면 yield return new WaitForSeconds(3f); 해준 다음에 op.allowSceneActivation = true를 해주면 됩니다!

    • @양준호-o7j
      @양준호-o7j 3 ปีที่แล้ว +1

      @@wergia 와 감사합니다.

  • @조폐
    @조폐 2 ปีที่แล้ว +1

    이미지를 다운 받을수가 없네요 ㅠㅠ 어떻게 해야 하나요..?

    • @wergia
      @wergia  2 ปีที่แล้ว

      링크 수정했습니다!

    • @조폐
      @조폐 2 ปีที่แล้ว

      @@wergia 감사합니다!!!

  • @guylucky1508
    @guylucky1508 2 ปีที่แล้ว +1

    1.
    인스턴스화(instance)? 그거 코드 다지우고, 그냥 scene1과 scene2에 각각 loadingUI오브젝트를 넣었습니다. loadingUI를 불러내는건 각각 hierarchy에 GameManager빈 오브젝트 만들어서 조작했는데요. GameManager에 public LoadingSceneController LoadingUIClass쓰고 거기다가 loadingUI오브젝트 끌어서 LoadingUIClass.LoadScene("Scene2")이렇게 쓰는 방식으로요. 인스턴스화를 안썼을때 문제점이 있나요? 혹시 쓰는 이유가 무엇인가요.
    2.
    그리고 그렇게 해서 Scene1>Scene2를 했을떄는 문제가 발생하지 않았으나, 같은 방식으로 Scene2>Scene1과정에서 에러가 발생했습니다. Scene2에서 Scene1로 딱 넘어오는 순간에, LoadingUI에 붙어있던 LoaidngSceneController스크립트가 destroy 됐으나 계속 사용하려한다는 오류였습니다. Debug.log찍어서 어디서 에러가 발생하는지 찾아보았는데, OnSceneLoaded()의 if문안에서 에러가 발생하더군요. Debug.Log("1");
    StartCoroutine(Fade(false));
    Debug.Log("2");
    SceneManager.sceneLoaded -= OnSceneLoaded;
    이렇게 찍어보았는데, Scene1>Scene2의 과정에서는 Debug.log둘다 찍히지않고, Scene2>Scene1의 과정에서 Debug.log("1")만 찍히고 " 'LoadingSceneController' has been destroyed but you are still trying to access it"가 뜹니다. 그래서 그냥 Scene2에서는 StartCoroutine(Fade(false))를 빼버렸습니다. 그러니 모바일 빌드시 문제가 없긴하더군요. 혹시 에러가뜨는 이유가 뭔가요? ..저 OnSceneLoaded의 구동원리가 정말 이해가 가지 않습니다.. ㅠㅠ 감사합니다. 사랑합니다.

    • @wergia
      @wergia  2 ปีที่แล้ว +1

      1. 로딩 UI를 인스턴스화 한 이유는 씬1에서 씬2로 넘어가는 중간에 검은 화면이 안보이게 만들기 위해서 입니다. 그렇기 때문에 로딩UI는 씬1에서 씬2로 넘어가는 과정 중에 파괴되지 않고 계속 존재해야 합니다. 그런데 프리팹으로 인스턴스화해서 DontDestroyObject로 해주지 않으면 씬을 이동하는 도중에 로딩UI가 파괴되게 됩니다.
      2. 이 문제는 앞에서 설명한 로딩 UI가 파괴되면서 발생하는 문제입니다. OnSceneLoaded 함수는 이름 그대로 씬 로딩이 모두 완료된 이후에 자동으로 호출되는 콜백입니다.
      씬 로딩이 완료된 이후에 사용하고 파괴한 로딩 UI의 StartCoroutine(Fade(false));를 호출하려고 하니 문제가 생기는 겁니다.