⭐ Unreal Engine
[UE] ViewBinding 문제 해결 (The field for source 'OO' exists but is not accessible at runtime.)
[UE] ViewBinding 문제 해결 (The field for source 'OO' exists but is not accessible at runtime.)
2025.01.20The field for source 'OO' exists but is not accessible at runtime. 이라는 문구가 뜨면 위젯에서 컴파일이 되지 않는다. ViewBinding이 실패하면서 나오는 에러 문구다. 목차 ViewBinding 문제 해결 문제 상황 아래와 같은 Compile Error가 뜨면서 View Binding이 되지 않는다. The field for source 'TabPcMail' exists but is not accessible at runtime.[0368.75] Compile of WBP_위젯이름 failed. 1 Fatal Issue(s) 0 Warning(s) [in 198 ms] (/Game/ 경로 ) 수정 전 코드 #pragma once#i..
[UE] TSoftObjectPtr, TSoftClassPtr의 Valid 체크 (IsNull 사용)
[UE] TSoftObjectPtr, TSoftClassPtr의 Valid 체크 (IsNull 사용)
2025.01.14이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[UE] TObjectPtr을 SoftObjectPath로 만들기
[UE] TObjectPtr을 SoftObjectPath로 만들기
2025.01.13TObjectPtr을 SoftObjectPath로 만들기 목차 TObjectPtr을 SoftObjectPath로 만들기 문제 상황 애셋을 로드하지 않고 SoftObjectPath로 사용하고 싶은 상황이 있다. 아래의 예시 상황' 현재 재생중인 사운드 '와 ' 새롭게 재생될 사운드 '를 비교하고 싶다. Sound는 TObjectPtr 변수다.NewBgmSound는 TSoftObjectPtr 변수다.void BgmSoundManager::PlayBgm(const TSoftObjectPtr NewBgmSound){ // Bgm사운드가 현재 재생중인 Bgm과 같은 경우, 동일한 Bgm사운드를 새로 재생하지 않는다. if (CurrentAudioComponent->Sound 비교 NewBgmSou..
SpawnActor (스폰을 지연시키는 방법)
SpawnActor (스폰을 지연시키는 방법)
2024.12.15언리얼 엔진에서 Spawing을 지연시키는 방법이 2가지가 있다. 첫번째로, 처음부터 SpawningActorDeferred를 사용하는 방법이 있다. 두번째로, SpawnActor를 사용하되 bDeferConstruciton = true 설정을 하여 스폰 지연시키는 방법이 있다. 목차 Spawning을 지연시키는 방법 문제 상황 SpawnActor를 하는 시점을 지연 시키고 싶다. 이유 예)데이터가 다 세팅되지 않았다.SpawnActor가 끝나기 전에 체크하고 싶은게 있다. Spawning을 지연시키는 2가지 방법 1. SpawningActorDeferred를 사용엄밀히 말하면 Spawning을 지연시키는 방법은 아니다. 하지만 BeginPlay() 이전을 조정할 수 있다.OnConstructio..
[UE] Build.cs에서 빠진게 있어 빌드가 안 되는 경우
[UE] Build.cs에서 빠진게 있어 빌드가 안 되는 경우
2024.10.08Build.cs에서 빠진게 있어 빌드가 안 되는 경우, 에러 메시지를 띄운다. 목차 Build.cs에서 빠진게 있어 빌드가 안 되는 경우 문제 상황 아래와 같은 에러 문구를 띄우며 컴파일에 실패했다. 1>PopupBase.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static struct FKey const EKeys::Escape" (__imp_?Escape@EKeys@@2UFKey@@B) referenced in function "public: virtual bool __cdecl UPopupBase::HandleKeyDownEvent(struct FKeyEvent const &)" (?Ha..
[UE] Shipping 모드에서 디버깅하기
[UE] Shipping 모드에서 디버깅하기
2024.10.02Shipping 모드로 패키징 한 후 디버깅 하고 싶을 때가 있다. 다음 상황에서는 아래에 작성한 방법으로 실행 파일과 Visual Studio를 연결해주면 된다. 목차 Shipping 모드에서 디버깅하기 문제 상황 Shipping 모드로 빌드 된 파일을 실행하면서 Visual Studio를 켜서 중단점을 걸고 디버깅을 하고 싶다. 해결 방법 1. 패키징 후 실행파일(.exe) 파일 실행하기 2. Visual Studio에서 디버깅하기Debug - Attach to Process에 들어가서 Shipping.exe를 선택하고 Attach를 눌러 준다.
[UE] Unreal Insights 엔진 코드에서 생성하기
[UE] Unreal Insights 엔진 코드에서 생성하기
2024.10.01Unreal Insight는 CPU, GPU 등의 메모리 부하를 확인할 수 있어 디버깅과 최적화에 도움이 된다. Unreal Insight를 설치하고 실행하는 방법에 대해 알아보자. 목차 Unreal Insights 엔진 코드에서 생성하기 1. Unreal Insights 빌드하기 언리얼 엔진 소스코드에서 Programs - UnrealInsights 빌드 2. 작업하는 프로젝트에 Unreal Insights 동작하도록 설정하기 자신이 만든 프로젝트 폴더 우클릭- Properties - Debuggin - Command Arguments 수정하기 프로젝트명 -tracehost=127.0.0.1 -trace=cpu,gpu,frame 변경 전 변경 후 언리얼 공식문서 - U..
[UE] Build.cs에 PublicDependencyModuleNames 추가해도 컴파일이 되지 않음
[UE] Build.cs에 PublicDependencyModuleNames 추가해도 컴파일이 되지 않음
2024.09.20Build.cs에 PublicDependencyModuleNames.AddRange에 추가해도 컴파일 되지 않는 문제 해결 목차 Build.cs에 PublicDependencyModuleNames 추가해도 컴파일이 되지 않음 문제 상황 Build.cs에 PublicDependencyModuleNames 추가해도 컴파일이 되지 않는 문제가 발생했다. 먼저, 아래와 같이 QuickAssetAction 클래스를 생성했다.QuickAssetAction 클래스는 "AssetActionUtility.h" 헤더를 필요로 하기 때문에 Build.cs에 추가해줘야 한다. QuickAssetAction.h#pragma once#include "CoreMinimal.h"#include "AssetActionU..
[UE Net] 캐릭터 공격 구현 개선
[UE Net] 캐릭터 공격 구현 개선
2024.09.06느린 통신 환경에도 대응되는 캐릭터의 공격 구현의 개선네트웍 최적화를 위한 다양한 고려 사항의 이해 인프런 이득우님의 '언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해' 강의를 참고하였습니다. 😎 [이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해] 강의 들으러 가기! 목차 캐릭터 공격 구현의 개선 목표 의도적으로 패킷 랙을 유발시켜서 기존에 구현한 공격 기능의 문제점을 살펴보자.캐릭터의 공격 구현의 개선하자. 캐릭터의 공격 구현의 문제점 클라이언트의 모든 행동은 서버를 거친 후에 수행되도록 설계되어 있음통신 부하가 발생하는 경우 사용자 경험이 나빠짐.만약에 통신 랙이 심한 경우에는 사용자가 공격 명령을 입력해도 애니메이션이 늦게 재생되거나 시각..
[UE] 언리얼 빌드 시스템
[UE] 언리얼 빌드 시스템
2024.09.02언리얼 엔진의 프로젝트 구성과 에디터 동작 방식의 이해하고, 언리얼 엔진의 모듈 시스템을 기반으로 소스코드와 플러그인 구조를 직접 제작하기언리얼 엔진의 프로젝트 구성과 에디터 동작 방식의 이해언리얼 엔진의 모듈 시스템을 기반으로 소스코드를 구성하는 방법의 학습언리얼 플러그인 시스템을 활용한 효과적인 모듈 구성의 학습 인프런 이득우님의 '언리얼 프로그래밍 Part1 - 언리얼 C++의 이해' 강의를 참고하였습니다. 😎 [이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해] 강의 들으러 가기! 목차 언리얼 에디터 프로젝트 구성 언리얼 에디터 구성 게임 제작을 위해 에픽게임즈가 제공하는 저작 도구언리얼 엔진의 구성에디터 : 게임 제작을 위해 제공되는 응용 프로그램 (일반적으로 인식하는..
[UE] GameplayTag를 날리면서 발생한 문제, OnRep 함수 안 불림, 컴포넌트 클래스 Replicate
[UE] GameplayTag를 날리면서 발생한 문제, OnRep 함수 안 불림, 컴포넌트 클래스 Replicate
2024.07.31GameplayTag를 매개변수를 던져주고 변수에 값을 복사하여 담아 사용하려고 했다. 하지만 복사한 값을 사용하려고 할 때 문제가 발생했다. 목차 GameplayTag를 날리면서 발생한 문제 문제 GameplayTag를 매개변수를 던져주고 변수에 값을 복사하여 담아 사용하려고 했다.하지만 복사한 값을 사용하려고 할 때 문제가 발생했다. 문제가 발생한 부분 코드 키 입력 후 GameplayTag를 매개변수로 넘기는 부분void UXZPawnExtensionComponent::Input_EquipSlot2(const FInputActionValue& InputActionValue){ if (GetXZCharacter() && GetXZCharacter()->GetWeaponComponent(..
[UE] 입력 BindAction 템플릿 함수에서 발생한 문제
[UE] 입력 BindAction 템플릿 함수에서 발생한 문제
2024.07.27Enhanced Input을 사용할 때 입력을 등록하는 부분에서 문제가 발생했다. 입력을 등록하는 템플릿 함수를 만들어서 사용하려 했다. 템플릿 함수는 정상적으로 선언하여 컴파일이 됬지만 Enhanced Input에 등록하는 코드가 들어가니 문제가 발생했다. 입력 BindAction 템플릿 함수에서 발생한 문제 문제 상황 Enhanced Input을 사용할 때 입력을 등록하는 부분에서 문제가 발생했다. 입력을 등록하는 템플릿 함수를 만들어서 사용하려 했다.템플릿 함수는 정상적으로 선언하여 컴파일이 됬지만 Enhanced Input에 등록하는 코드가 들어가니 문제가 발생했다. 아래는 Enhanced Input에 함수를 바인딩하는 부분의 클래스다.#pragma once#include "CoreMini..