목차
- C++ 헬스바 위젯의 부모 클래스 만들기
- 부모 클래스 바꾸기
1. C++ 헬시바 위젯의 부모 클래스 만들기
현재 헬스바 위젯의 부모 클래스가 User Widget으로 되어있는데 이것은 우리가 만든 것이 아닌 언리얼에서 기본으로 제공해주는 클래스이다.
클래스의 기능들을 더 추가하고 싶고 그러기 위해서 유저 위젯 클래스를 직접 만들어보려고 한다.
유저위젯을 부모 클래스로 하여 새로운 클래스를 만들어보도록 하자.
이제 이 클래스에서 프로그래스바(헬스바)의 진행도를 퍼센트에 맞게 변경할 것이다.
헬스바를 이렇게 변수로 설정할 수 있다. 즉 이 변수를 C++단에서 쓸 수 있으면 진행도를 조절할 수 있게 된다는 뜻이다.
이제 블루프린트의 변수와 C++변수를 링크해보자.
UPROPERTY()
class UProgressBar* HealthBar;
변수를 위와 같이 선언할 것인데 이것을 블루프린트의 변수와 바인딩할 방법을 알아보자
public:
UPROPERTY(meta = (BindWidget))
class UProgressBar* HealthBar;
이렇게 메타데이터를 설정해주면 된다. 이때 주의사항으로 블루프린트 변수의 이름과 c++변수의 이름이 동일해야한다.
이제 바인딩이 끝났으니 C++에서 이 변수의 값(퍼센트)를 변경하면 블루프린트에서도 바뀌게 될 것이다.
변수의 값은 언제 어디서 바꾸는 게 좋을까? 현재 에너미 클래스에는 위젯 컴포넌트가 존재한다. 이것을 통해 설정된 위젯을 반환받을 수 있고 그러면 퍼블릭 변수에 접근하여 값을 바꿀 수 있게 된다.
그 전에 컴파일을 하고 블루프린트 위젯의 부모 클래스를 바꾸도록 하자.
2. 부모 클래스 바꾸기
위젯으로 돌아가 이벤트 그래프에서 사용하지 않는 노드를 전부 삭제한다.
상단의 클래스 세팅을 누르고
디테일 패널에서 부모 클래스를 바꾸면 된다.
무사히 바뀌었다. 만약 바인딩이 실패하면 이때 크래시가 발생한다고 한다. 이름을 지을때 조심해서 지어야 할 듯 하다.
'게임프로그래밍 > 실습1' 카테고리의 다른 글
[언리얼 실습] 49. 데미지 시스템 사용하기 (0) | 2024.11.02 |
---|---|
[언리얼 실습] 48. 실제 체력바 퍼센트 조절하기 (0) | 2024.11.02 |
[언리얼 실습] 46. 위젯 컴포넌트 만들기 (0) | 2024.11.01 |
[언리얼 실습] 45. 커스텀 컴포넌트 만들기 (0) | 2024.11.01 |
[언리얼 실습] 44. 나이아가라 컴포넌트 모듈 추가하기 (0) | 2024.11.01 |