본문 바로가기

UI13

Project_P Damage UI 제작(4) 플레이어 컨트롤러에서 UI 생성 플레이어 컨트롤러에서 UI 생성APPPlayerController.hclass PROJECT_P_API APPPlayerController : public APlayerController{ GENERATED_BODY() public: APPPlayerController();//Damage UI Sectionpublic: void ActorTakedDamage(const float& Damage, const FVector& ActorPosition);protected: UPROPERTY(EditAnywhere, Category = "HUD") TSubclassOf DamageUIClass; UPROPERTY(VisibleAnywhere, Category = "HUD") TArray> DamageUIArra.. 2025. 3. 27.
Project_P Damage UI 제작(3) UI 블루프린트 생성 C++로 생성한 DamageUI 블루프린트로 생성 콘텐츠 브라우저에서 우클릭 → 유저 인터페이스 → 위젯 블루프린트 클릭C++에서 생성한 클래스를 부모로 블루프린트 클래스 생성 UI 구성은 간단하게 SizeBox 안에 텍스트 블럭을 넣음텍스트 블럭의 이름은 반드시 C++ 클래스에서 생성한 변수 이름과 똑같아야 됨 블루프린트 에디터 밑에 애니메이션을 클릭하여 애니메이션을 생성 및 설정애니메이션도 텍스트와 마찬가지로 C++에서 생성한 변수와 이름이 같아야됨 2025. 3. 27.
Project_P Damage UI 제작(2) Damage UI 생성 UUserWidget을 상속받아 Damage UI 생성DamageUI.hclass PROJECT_P_API UPPFloatingTextUserWidget : public UUserWidget{ GENERATED_BODY()public: UPPFloatingTextUserWidget(const FObjectInitializer& ObjectInitializer); virtual void NativeConstruct() override;public: bool SetTextWidget(const float& Damage, const FVector& ActorPosition); FEndLifeTime EndLifeTime; FWidgetAnimationDynamicEvent AnimFinishedDelegate.. 2025. 3. 27.
Project_P Damage UI 제작(1) 로직 구성 기존 IPPGameInterface 에 함수 추가IPPGameInterface.hclass PROJECT_P_API IPPGameInterface{ GENERATED_BODY() // Add interface functions to this class. This is the class that will be inherited to implement this interface.public: virtual void OnPlayerDead() = 0; virtual void OnTakeDamage(const float& Damage, const FVector& ActorPosition) = 0;};Damage UI 도 데미지를 받으면 게임모드를 통해 PlayerController에서 UI를 생성함그래서 Ga.. 2025. 3. 26.
Project_P 재시작 UI 제작 UUserWidget을 상속받아 GameOverUserWidget 클래스 생성 헤더파일UCLASS()class PROJECT_P_API UPPGameOverUserWidget : public UUserWidget{ GENERATED_BODY() public: UPPGameOverUserWidget(const FObjectInitializer& ObjectInitializer);protected: virtual void NativeConstruct() override; UFUNCTION(BlueprintCallable, Meta = (DisplayName = "BtnEventGameRestartCpp")) void BtnEventGameRestart();protected: UPROPERTY(meta = (.. 2025. 2. 10.
Project_P 캐릭터 사망시 UI 출력 및 재시작 함수 흐름도 게임모드를 간접참조하기 위한 인터페이스 생성 캐릭터 클래스에서 캐릭터가 죽을때 호출되는 SetDead()함수가 호출된다SetDead 함수에서 게임을 관리하는 게임모드를 통해 PlayerController 에게 재시작 UI를 띄우라고 함수를 실행한다이 과정에서 캐릭터에서 상위 레이어인 게임모드를 직접 참조하기 보다 인터페이스를 이용하여 간접참조를 한다 IPPGameInterfaceclass PROJECT_P_API IPPGameInterface{ GENERATED_BODY() // Add interface functions to this class. This is the class that will be inherited to implement this interface.public: v.. 2025. 2. 7.
Project_P 몬스터 HPBar 기능 추가 HPBar 보완점기존 HPBar는 몬스터가 벽뒤나 멀리 있어도 HPBar가 화면에 표시되어 위치를 알 수 있음그래서 HPBar를 몬스터가 적을 인식할 때만 표시를 하려함 AI의 인식을 처리하는 AIController에 델리게이트를 생성하여 AI가 타겟을 인식하면 델리게이트를 통해 bool변수 true를 넘겨줌 타겟을 잊어버리면(null처리) bool변수 false를 넘겨줌 HPBar가 있는 CharacterGrunt 클래스에서 SetVisibility 함수를 통해 HPBar를 관리 APPAIController에서 델리게이트 생성 및 실행헤더파일DECLARE_DYNAMIC_DELEGATE_OneParam(FFindTargetDelegate, bool, bFindTarget);UCLASS()class PRO.. 2024. 12. 18.
Project_P HUD 위젯 제작 HUD와 기존 위젯 컴포넌트의 차이점 위젯 컴포넌트를 통해 생성한 몬스터 HPBar는 GetOwningPlayerPawn함수를 통해 UI를 소유하고 있는폰을 가져오려면 위 스크린샷과 같이 에러가 발생한다. 그래서 위젯 컴포넌트에서 위젯이 초기화 될때위젯에 오너를 넘겨 오너를 사용해야 된다. HUD위젯은 플레이어 컨트롤러에 생성을 한다. 그래서 문제없이 GetOwningPlayerPawn 함수를사용할 수 있다 위젯 제작C++ 클래스 생성 UserWidget을 상속받아 PPPLayerStatBarUserWidget, PPHUDWidget을 생성한다 위젯 블루프린트 생성 PPPLayerStatBarUserWidget을 상속받아 위젯 블루프린트를 생성하여 HPBar, MPBar를 프로그래스바와 텍스트를 이용하.. 2024. 12. 18.
UnrealEnigne 헤드업디스플레이 구현 및 초기화 프로세스 보호되어 있는 글 입니다. 2024. 12. 18.