다른 타입의 변수들과 달리 오브젝트 타입의 변수는 변수 안에 값이 직접들어 있는 것이 아닌 실제 오브젝트를 참조(레퍼런스)하는 변수입니다. 그 중 오브젝트 레퍼런스는 오브젝트를 참조하는 변수, 클래스 레퍼런스는 클래스를 참조하는 변수라고 생각하면 됩니다. 블루프린트에서 함수를 사용할 경우 오브젝트 레퍼런스를 인자로 받는 함수는 오브젝트 레퍼런스로 선언된 변수를 받아야 하지만 클래스 레퍼런스를 인자로 받는 함수는 위의 사진과 같이 클래스를 지정하여 사용할 수 있습니다. void AddWeaponToInventory(class APCEWeaponBase* Weapon); 평소에 포인터로 인자를 받는 오브젝트 레퍼런스를 사용하는 함수의 경우 위와 같이 작성하지만 클래스 레퍼런스의 경우 다음과 같이 작성합니다...
Unreal Engine4
▣ 헤더에서 특정 클래스를 포인터 / 레퍼런스 / 함수 파라미터 / 리턴 값으로만 사용합니다. - 이 클래스 변수의 메모리 크기를 구체적으로 알 필요가 없습니다. - 포인터가 아닌 해당 타입을 직접 포함하는 경우 해당 선언부를 직접 include 해야 합니다. ▣ inline / 템플릿 함수에서 이 클래스 내부 함수 / 변수를 호출하지 않습니다. - 이 클래스 내부 함수 / 변수의 기호에 접근할 일이 없습니다. enum 클래스는 크기를 명시해준다면 헤더에서 include를 제거할 수 있습니다. ex) enum class ESample : uint8;
기반 블루프린트 클래스를 생성(블루프린트로 상속)할 수 있는 최고 단위는 Actor이다.
GetOwner() 같은 함수로 액터를 받아올 경우 해당 액터의 클래스 타입이 무엇인지 확인하는 방법으로 2가지 방법이 있다. OnwerPCECharacter = GetOwner(); if (OwnerPCECharacter->IsA(APCEPlayerCharacter::StaticClass())) { OwnerType = EOwnerType::OwnerType_Player; } else if (OwnerPCECharacter->IsA(APCEEnemyCharacter::StaticClass())) { OwnerType = EOwnerType::OwnerType_Enemy; } else { return; } IsA() 함수를 사용한 방법과 OwnerPCECharacter = GetOwner(); if (O..
애니메이션 블루프린트의 트랜지션 룰을 설정할 때 위와 같이 ThreadSafe 관련 경고가 뜬다면 아래와 같이 해결하면 됩니다. 해당 값을 애니메이션 블루프린트 내에서 변수로 저장하여 사용하면 됩니다.
블루프린트에서 입력 파라미터와 출력 파라미터는 2개 이상 만들 수 있습니다. 블루프린트에서 만든 함수를 C++로 작성할 때 입력 파라미터는 2개 이상 만드는 것은 쉽지만 출력 파라미터. 즉, 반환값을 2개 이상으로 만들 때는 구조체를 이용해야 하나 싶었습니다. 그러나 반환하는 것 때문에 일일이 구조체를 만들기에는 효율성이 떨어지는것 같아 찾아보니 튜플이라는 자료형을 알게 되었습니다. 참고로 TTuple은 UObject 클래스가 아니기 때문에 UFUNCTION과 UPROPERTY를 사용할 수 없습니다. TTuple FixDiagonalGamepadValues(float ForwardAxis, float RightAxis) const; UFUNCTION(BlueprintCallable, Category = ..
위젯을 SetFocus 함수로 Focus를 잡을 때 Delay를 최소 0.02정도를 주지 않으면 작동하지 않을때가 있습니다.