디테일 패널 - 보더 - 디테일 패널 - 버튼, 택스트, 슬라이드 바 배치begin - 시퀀스 - create widget (w-uiMain 설정) - 변수 승격 (m-uiMain)tab - Flip Flop - A : add to viewport (m-uiMain) - show mouse cursor(get Player Controller) - set Input Mode Game and UI (m-uiMain, get Player Controller) / B : remove From Parent(m-uiMain) - show Mouse Cursor(get Player Controller) - set Input Mode Game Only (get Player Controller)
UI 초기화 시점
constrcut - print string (생성자) / init - print string (초기화)게임을 처음 실행하면 초기화가 불리게 된다.UI를 키게 되면 생성자가 불리게 된다.
즉, 생성자가 불리고 초기화가 불리는 것이 아닌 초기화가 불리고 생성자가 불리는 것을 확인할 수 있다 ( 시점이 다름 )
버튼 기능 사용
버튼 클릭 후 세팅이벤트 - on Clicked - 클릭 후 이벤트 생성on Clicked - Remove from Parent 호출 (주의점 : 나중에 많은 이벤트를 호출하게되면 알아보기 힘들 수도있기에 네임을 잘 정하여 사용할 것, 위젯의 이름을 바꾸면 자동으로 바뀌게 된다 )클릭을 하면 꺼지게 되는데 단순히 꺼지기만 하기에 캐릭터는 움직여지지 않고 화면도 옮겨지지 않는 상황이 발생
닫는 부분에 대한 것
ESC를 누르면 꺼짐 ( UI가 안켜져 있다면 옵션창을 띄우고, 옵션창의 경우 가장 상위라 다른 UI들이 켜지지 않음 ) -> 구현하기 위해서 세트에 저장을 하고 하나하나 꺼주는 작업을 해주면 됨 )
버튼을 누르게 되면 꺼짐
같은 키를 누르게 되면 꺼짐 (우리가 만든 Flip Flop) -> 함수로 빼주던지 아니면 위젯에서 만들어서 사용하던지 ( 모든걸 하나하나 다 만드는것은 귀찮기 때문 )
캐릭터의 정보를 얻어와 UI에 띄우는 작업 ( 택스트 )
방법 1. 바인딩
방법 2. 포인터
변수 (m-text, 텍스트 ) 생성 - 1번을 누르게 되면 키보드 1번으로 변경 , 2번을 누르게 되면 키보드 2번으로 변경UI 그래프 - m-player (bp_ThirdPersonCharacter) 생성 - 인스턴스 편집, 스폰시 노출 On[bp_ThirdPerson] create Widget에 보면 m-Player라고 생길껀데 Self를 연결 -> 위젯에서 player의 존재를 확인 가능택스트 - Text 부분에 바인드 클릭 - m-Player - m-text 클릭실행 ( 1번, 2번을 누르면 택스트가 변경되는것을 확인 )
프로그래스 바인딩 + 포인터 방식 활용
포인터 방식
변수 m-HpMax (int), m-HpCurrent (int), m-Hp (float) 생성 - 3번을 누르게 되면 현재 Hp에 +10, 4번을 누르게 되면 현재 Hp에 -10 - e-upDataHp 연결 / e-upDataHp - m-hpCurrent / m-hpMax의 값을 float로 캐스팅 후 set m-Hp에 연결프로그래스에서 Percent 부분에 바인드 ( m-hp )3,4 번을 누르게 되면 줄어들었다 늘어났다 확인 가능
바인딩 방식
프로그래스 - percent - 바인딩 생성생성된 함수에 m-player에서 m-HpCurrent / m-HpMax의 값을 float로 캐스팅 한 후 그 값을 return 출력에 연결잘 실행 되는것을 확인
과제
슬라이드바 -> + , - 버튼 클릭 시 값 변경 ( 슬라이드 바도 움직여야함 ) / 슬라이드를 조작해도 값 변경
기본 설정택스트에 바인드포인터 활용실행
언리얼 UI 퀵스타트 ( 채력, 기력 시스탬에 대한 기본 UI 예시니까 참고하면 좋을 듯 )