You can check to see if that Widget exists, which is the way we will do.
or maybe you just set a boolean somewhere that says, hey, is paused
when you show or is paused when you not showed
즉, 해석 하자면 방법이 2가지 정도 있다는 건데
1. 해당 위젯 자체가 켜져있나 안켜져 있나 확인하는 방법과
2. Boolean 변수를 하나만들어서 해당 위젯을 킬때 True로 설정하고
끌때는 False로 설정하는 식이다.
So, Whenever it is paused, we are going to check if there has already the Menu Wideget created.
They both work same. They are just different functionally.
is Valid : 이미 생성되 있어? (유효한것인가?)
is not Valid : 일전에 생성되지 않았어?(유효하지않어?)
1. Puase 모드일때는 UI만 통제할수 있게끔 설정한다.
2. Puase 모드가 종료일때는 Game 모드로 돌아갈수 있게끔 설정한다.
여기서 또 게임의 UI 시스템을 만들면서 또 계속 분기점이 생기는데 간단한 New Game , Quit 게임을 만드는데는 문제가 없지만 만약 UI 시스템이 예를들어
이정도로 설정을 추가해야할 만큼 복잡하다면
단순히 Boolean 으로 2가지 경우의 수를 물어보는게 아닌
최대 2^10 이라고 치면 1024가지 경우의 수를 사람이 미리 프로그래밍을 해야하는 식이다.
(적응하면 할수 있겠지만.. 그것을 일일히 다 기억하고 관리하는것은 매우 힘들다..)
============================================================
또 달리 생각해보면 지금 위젯을 하이드 시키고 다시 보이게끔 하는 방식이 매우 무식하다고 할수 있는게 있는데
지금하는 방식은 파괴, 생성 과정을 거치면서 메모리를 꽤 많이 소모할 가능성이 매우 높다.
차라리 메모리상으로는 일단 생성해서 불러오고 나중에 어차피 자주 쓸 오브젝트, 요소들이라면
플레이어가 안보이게끔 하이드만 시키고 메모리에 계속 놓아두는것이 더 효율적이다.
일일히 하나하나 Boolean으로 설정해서 삭제하는 방식보다 한묶음으로 삭제할수 있는지 또는 효율적으로 관리할수 있는 방법이 진짜 무엇인지 항상 체크.
마지막으로 영상에서는 Menu 위젯 말고 Player Health 와 Player Ammo를 나타낸 위젯만 따로 제거하고 불러오게끔 설정하는 코드에 대해 설명하고 있다.
===============================================================
으..드디어 다들었다.
https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/UMG/UserGuide/
'Unreal_Engine > UMG UI' 카테고리의 다른 글
UI제작 Using Artificial intelligence (0) | 2023.04.15 |
---|---|
2022-11-22(temporariness) (0) | 2022.11.22 |
위젯 블루프린트 구성 (0) | 2021.09.11 |