언리얼/언리얼 C++13 [UE5] 라이더 코드 이동 안될 때(Code Indexing) 언리얼 엔진에서 선언으로 못 들어갈 때? 이 설정만 바꾸면 해결!언리얼 엔진으로 개발하다 보면, 종종 이런 경험 있으시죠?함수나 변수명을 Ctrl + 클릭하거나 F12 눌러서 선언부로 가려고 했는데, 안 들어가진다처음엔 왜 안 되는지 몰라서 당황스럽고, 결국 엔진 소스를 하나하나 수동으로 찾아보는 지옥을 경험하게 됩니다. 그런데 이거, 사실 플러그인 인덱싱 설정만 해주면 해결됩니다.왜 선언으로 못 들어가는 걸까?기본적으로 언리얼 엔진은 초기 로딩 속도를 빠르게 하기 위해, 플러그인이나 엔진의 일부 코드 파일들을 인덱싱하지 않습니다. 이 덕분에 IDE가 가볍게 뜨긴 하지만, 문제는 우리가 Go to Definition 같은 기능을 사용할 때 원하는 선언으로 못 들어가는 상황이 발생한다는 것.해결 방법은?다.. 2025. 5. 6. [UE5] 언리얼 하드,소프트 참조 하드 참조 (Hard Reference)직접 참조: 하드 참조는 리소스를 직접 참조하는 방식입니다. 예를 들어, 특정 오브젝트나 액터에 대해 하드 참조를 사용하면, 그 오브젝트가 필요할 때마다 언리얼 엔진은 해당 오브젝트를 메모리에 항상 로드해 둡니다.메모리 사용: 하드 참조는 메모리에 상주하게 되므로, 큰 오브젝트나 많은 리소스를 하드 참조할 경우 메모리 사용량이 증가할 수 있습니다.로드 타임: 하드 참조된 오브젝트는 게임이 시작되거나 해당 오브젝트가 필요할 때 미리 로드되기 때문에, 필요할 때 바로 사용할 수 있지만, 초기 로드 시간은 길어질 수 있습니다.소프트 참조 (Soft Reference)참고로, 소프트 참조는 필요할 때만 리소스를 로드하는 방식으로, 메모리 관리에 유리하지만, 처음 접근할 때.. 2024. 8. 22. [UE5] 언리얼 델리게이트 바인딩 종류 전역 C++ 함수 : BindStatic API를 사용해 등록 전역 C++ 람다 함수 : BindLambda API를 사용해 등록 C++클래스 멤버 함수 : BindRaw API를 사용해 등록 공유포인터 클래스의 멤버 함수 (쓰레드 미지원) : BindSP API를 사용해 등록 공유포인터 클래스의 멤버 함수 (쓰레드 지원) : BindThreadSafeSP API를 사용해 등록 UFUNCTION 멤버 함수 : BindUFunction API를 사용해 등록 언리얼 오브젝트의 멤버함수 : BindUObject API를 사용해 등록 위 API 목록 중에서 우리가 바인딩하려는 RequestTokenComplete 함수는 언리얼 오브젝트 ABGameInstance의 멤버 함수 이므로, CreateUObject를 .. 2024. 3. 23. [UE5] TObjectPtr TObjectPtr은 UObject에 대한 포인터 유형입니다. 원시 포인터 멤버 속성을 대체합니다. 64비트 포인터와 동일한 크기이며 편집기 빌드에서 액세스 추적 및 선택적 지연 로드 동작을 지원합니다. 참조된 개체에 대한 주소 또는 아직 로드되지 않은 참조된 개체를 설명하는 개체 핸들 테이블의 인덱스(편집기 빌드에서)를 저장합니다. 이는 UObject에 대한 원시 포인터와 동일하게 직렬화됩니다. 해결되면 가비지 수집에 참여하는 것은 UObject에 대한 원시 포인터와 동일합니다. 이는 고급 요리 시간 종속성 추적 및 편집기 시간 지연 로드 사용 사례를 지원하기 위해 원시 포인터를 자동으로 교체하는 데 유용합니다. 공식문서에서 보면 위와 같다 더알아봤는데 원시 포인터와 동일하게 동작하지만 편집기에는 액세.. 2023. 11. 18. [UE5 C++] OnComponentBeginOverlap OnComponentBeginOverlap 컴포넌트 간의 겹칠때 호출되는 이벤트입니다. 캐릭터가 만약 특정 지점에 갈 시 레벨이 이동 되거나 할 때 쓰거나 캐릭터가 총에 맞을 때 데미지 구현 할 때 등등 정말 많이 쓰니 알아두도록 하자 사용방법 헤더파일 UFUNCTION() void OnComponentBeginOverlap( UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult ); private: { UPROPERTY(VisibleAnywhere) TObjectPtr.. 2023. 11. 16. [UE5] 인터페이스 인터페이스 인터페이스 클래스는 (잠재적으로) 무관한 클래스 세트가 공통의 함수 세트를 구현할 수 있도록 하는 데 쓰입니다. 그대로라면 유사성이 없었을 크고 복잡한 클래스들에 어떤 게임 함수 기능을 공유시키고자 하는 경우 매우 좋습니다. 예를 들어 트리거 볼륨에 들어서면 함정이 발동되거나, 적에게 경보가 울리거나, 플레이어에게 점수를 주는 시스템을 가진 게임이 있다 칩시다. 함정, 적, 점수에서 ReactToTrigger (트리거에 반응) 함수를 구현하면 될 것입니다. 하지만 함정은 AActor 에서 파생될 수도, 적은 특수 APawn 또는 ACharacter 서브클래스일 수도, 점수는 UDataAsset 일 수도 있습니다. 이 모든 클래스에 공유 함수 기능이 필요하지만, UObject 말고는 공통 조상이.. 2023. 11. 9. 이전 1 2 3 다음