해당 함수를 Scale 변경 이후, 다양한 형태의 SimulatePhysics 이전에 호출하면 해결된다.언리얼의 PhysicsState는 실시간으로 갱신이 되는 것이 아닌 것으로 보이며, 어느 시점에 갱신이 되었는지 명확히 알기 어렵기 때문에 실제로 물리를 적용하기 전
이득우의 언리얼 c++ 게임 개발의 정석
언리얼 엔진으로 개발을 하다보면 애니메이션 몽타쥬를 재생하는 것은 필수적인 부분이며 주로 Character에 구현 된 PlayAnimMontage를 활용 할 것이다.다만 이 함수의 반환 값은 MontageLength 즉, 애니메이션 몽타쥬의 원본 길이를 반환 한다. 함
다른 모듈의 코드에서 해당 인터페이스로 캐스팅을 수행할 때 컴파일은 완료 되었으나, 아래와 같이 LNK1120 에러가 발생하였다.
위 사진을 보면 알 수 있 듯이 MoveDirectlyToward는 네비게이션 시스템을 사용하지 않고 곧 바로 목표를 향해 직선으로 이동한다고 유추할 수 있다.하지만, 이 노드는 굉장한 맹점이 있는게 네비게이션 매쉬를 사용하지 않는 이동이지만 네비게이션 매쉬가 없으면
컴포넌트 중에는 틱을 하지 않는 경우도 빈번하다. 그러므로 컴포넌트가 틱을 수행하지 않는 다면 PrimaryComponentTick.bCanEverTick을 false로 할당해주어 불필요한 틱 연산을 방지해야 한다.엑터 컴포넌트는 계층 구조를 가지고 있지 않기 때문에
그냥 MULTICAST_DELEGATE는 블루프린트에서 사용할 수 없기 때문에 DYNAMIC_MULTICAST_DELEGATE를 사용한 것을 볼 수 있다. BP/Native 모두 델리게이트를 호출한다면 이와 같이 구성하는 것이 가장 바람직한 코드로 생각된다.
https://www.youtube.com/watch?v=DqqQ_wiWYOw&t=827s
모듈 작성 시 같은 모듈명/Public/ 경로에 있는 헤더파일의 include가 정상적으로 이루어지지 않는다면기본 게임플레이 모듈의 프로젝트명.Build.cs 파일에 해당 모듈에 대한 public 종속성을 추가해 주면 해결 된다.
프로젝트 내 바이너리 폴더 삭제 후 엔진을 다시 시작하면 해결된다.
패키지 빌드 도중 아래와 같은 에러가 발생하며 패키징이 중단되는 문제 발생fatal error C1083: Cannot open include file: 'ISettingsModule.h': No such file or directoryinclude 경로를 아래와 같이
Float(부동소수점) 비교 연산 시 블루프린트 노드가 정상적인 결과를 도출하지 않는 버그가 존재하는 것 같다. 아래와 같이 노드를 수정해 해결 할 수 있다.
블루프린트는 기본적으로 CDO를 활용해 객체를 생성하기 때문에 C++에서 정의한 생성자를 활용할 수가 없다. 때문에 블루프린트에서 오브젝트의 멤버 변수 초기화를 수행하려면 따로 초기화 함수를 구현하거나 아래와 같은 방법을 활용해야 한다.UPROPERTY(EditAnyw
위와 같은 함수를 작성했을 때 BlueprintCallable임에도 블루프린트에서 생성 시 실행핀이 노출되지 않는다.검색을 통해 알아보니 블루프린트 함수에 실행핀이 노출 되는 것은 BluepirntCallable이냐 BlueprintPure냐에 달린게 아니라 함수가 s
멀티플레이어 옵션으로 Number of players를 2이상으로 설정하여 에디터를 통해 멀티플레이 환경을 수행하려고 할 때 발생.언리얼 엔진 프로젝트의 심볼 용량이 꽉차거나, 지정되어 있지 않을 때 발생하는 오류이며, 해결 방법은 비주얼 스튜디오를 통해 Symbol
해당 문제는 주로 상위 혹은 해당 BP가 CPP에서 만든 Actor를 상속받은 경우 발생하는 것 같다. 위와 같이 컴포넌트를 클릭하여도 디테일 패널에 아무것도 보이지 않는다.상위 BP에서도 동일한 증상을 보인다.종종 위와 같이 최상위 BP에서는 정상적으로 보이기도 하지
Edit -> Editor Preferences -> Contents Editors/Graph Editors아래 항목들의 X, Y 값을 전부 0으로 변경.Forward Spline Tangent from Horizontal DeltaForward Spline Tange
대표적인 외부 데이터 타입CSV (Comma Separated Values)JSON (JavaScript Object Notation)차이점CSV - 훨씬 더 가볍고 용량이 작으며 단순한 데이터에 대해 더 나은 가독성을 제공이는 일반적으로 복잡도는 낮지만 많은 정보를
디테일 패널에 부모의 프로퍼티를 노출 할 수 있게 노출 된다. 개인적으로 왜 기본적으로 전부 노출 하지 않는 지 의문이다.출처 : 언리얼 포럼
Xcode 업데이트 이후 macOS에서 C++ 프로젝트 빌드 시 아래의 에러가 발생하는 프로젝트가 있었다.variable “LayerNames” set but not used -Werror,-Wunused-but-set-variableXcode가 업데이트 되면서 더 엄
클라이언트에 리플리케이션이 수행되는 타이밍은 BeginPlay보다 먼저 수행된다.
GameplayCueNotify_Actor는 'Auto Destroy on Remove'가 체크되어 있지 않거나, 'End (Recycle) GameplayCue'를 호출 하지 않으면 후속 호출 시 내부 이벤트가 정상적으로 발생하지 않는 문제를 야기한다.
SpawnActor 호출 시 Constructor와 BeginPlay 모두 트리거 됨.SpawnActorDeferred 호출 시 Constructor만 트리거 되며 BeginPlay는 FinishSpawning 이후 트리거 됨.
RepLayout.cpp 파일의 해당 구문에 걸리는 경우, 해당 구조체의 모든 변수들에 UPROPERT() 매크로를 붙여주지 않아서 생기는 문제이다.위 코드를 아래와 같이 변경해 주면 문제가 해결된다.