본문 바로가기

개발이야기/언리얼 c++12

언리얼 C++: Lambda와 mutable Lambda의 차이 람다 함수는 기본적으로 상수로 캡처한 변수를 수정할 수 없습니다. 이를 해결하기 위해 mutable 키워드를 사용하여 람다 함수를 변경할 수 있게 만듭니다.람다와 mutable 람다의 차이기본 람다기본적으로 람다 함수는 캡처된 변수를 상수로 취급합니다. 즉, 람다 함수 내에서 캡처된 변수를 수정할 수 없습니다.int x = 0;auto lambda = [x]() { // x++; // 오류: x는 상수로 캡처되었기 때문에 수정할 수 없습니다. std::cout mutable 람다mutable 키워드를 사용하면, 람다 함수 내에서 캡처된 변수를 수정할 수 있습니다. mutable 키워드를 사용하면 캡처된 변수는 상수가 아닌 일반 변수로 취급됩니다.int x = 0;auto lambda = [x].. 2024. 8. 6.
언리얼 C++ to BP: BlueprintNativeEvent 매크로로 C++함수 오버라이드 하기 Unreal Engine에서 C++로 선언된 함수를 블루프린트에서 오버라이드하려면, 함수 선언에 BlueprintNativeEvent 매크로를 사용해야 합니다. 또한, 해당 함수를 virtual로 선언하여 C++에서도 오버라이드할 수 있도록 해야 합니다. BlueprintNativeEvent 매크로는 C++에서 기본 구현을 제공하고, 블루프린트에서 오버라이드할 수 있게 합니다.이렇게 하면 함수의 기본 동작을 C++에서 정의하고, 블루프린트에서 이를 재정의할 수 있습니다. 1. "BlueprintNativeEvent": C++에서 기본 구현을 제공하고, 블루프린트에서 오버라이드할 수 있는 함수 선언에 사용됩니다.2. "_Implementation" 접미사: 함수의 기본 구현을 제공하는 C++ 함수 이름.. 2024. 6. 18.
언리얼 C++: EnhancedInput 시스템이란? 언리얼 엔진 5의 Enhanced Input 시스템은 기존의 입력 시스템(Input System)을 대체하여 보다 유연하고 강력한 입력 처리를 제공합니다. 이 시스템은 다양한 입력 디바이스를 통합 관리하고, 더 복잡한 입력 매핑과 처리 로직을 지원합니다. Enhanced Input의  주요 개념Input Mapping Contexts:입력 맵핑 컨텍스트는 여러 입력 액션(Input Actions)을 그룹화하는 역할을 합니다.특정 상황이나 상태에서 활성화될 수 있으며, 여러 컨텍스트를 겹쳐 사용할 수 있습니다.예를 들어, 걷기 상태와 운전 상태에 따라 다른 입력 맵핑 컨텍스트를 사용할 수 있습니다.Input Actions:입력 액션은 단일 입력 이벤트(키 누르기, 마우스 클릭 등)를 나타냅니다.디지털 입력.. 2024. 6. 18.
언리얼C++: ConstructorHelpers를 사용해 에셋을 로딩해보자 서론 :  컨텐츠 폴더의 에셋을 c++에서 사용하고 싶어언리얼 엔진에서 c++로 클래스를 제작할때 컨텐츠 폴더의 에셋을 지정하는 것이다.블루프린트에서는 스테틱메쉬나 스켈레탈 메쉬와 같은 컴포넌트들을 붙이고 드래그 앤 드롭 하거나 선택해주면 쉽게 에셋을 지정해줄 수 있었다. 하지만 c++은 어떻게 할 수 있을까?? ConstructorHelpers란?언리얼 엔진 5.4에서 ConstructorHelpers 클래스는 주로 C++ 코드에서 객체를 생성할 때 리소스를 찾고 로드하는 데 사용됩니다. ConstructorHelpers는 주로 생성자에서 특정 자산(Asset)을 쉽게 로드할 수 있도록 도와줍니다. 공식 문서를 기반으로 ConstructorHelpers에 대해 자세히 설명하겠습니다.1. FObjectF.. 2024. 6. 18.