BindAction("TargetSwitchLeft", IE_Pressed, CameraLockArm, &UTLSpringArmComponent::LockToSwitchTarget, EDirection::Left); 위와 같이 수정합니다. 4.26 버전부터 다음과 같이 작성하면 됩니다. BindAction("TargetSwitchLeft", IE_Pressed, CameraLockArm, &UTLSpringArmComponent::LockToSwitchTarget, EDirection::Left);
Unreal Engine
다른 타입의 변수들과 달리 오브젝트 타입의 변수는 변수 안에 값이 직접들어 있는 것이 아닌 실제 오브젝트를 참조(레퍼런스)하는 변수입니다. 그 중 오브젝트 레퍼런스는 오브젝트를 참조하는 변수, 클래스 레퍼런스는 클래스를 참조하는 변수라고 생각하면 됩니다. 블루프린트에서 함수를 사용할 경우 오브젝트 레퍼런스를 인자로 받는 함수는 오브젝트 레퍼런스로 선언된 변수를 받아야 하지만 클래스 레퍼런스를 인자로 받는 함수는 위의 사진과 같이 클래스를 지정하여 사용할 수 있습니다. void AddWeaponToInventory(class APCEWeaponBase* Weapon); 평소에 포인터로 인자를 받는 오브젝트 레퍼런스를 사용하는 함수의 경우 위와 같이 작성하지만 클래스 레퍼런스의 경우 다음과 같이 작성합니다...
▣ 헤더에서 특정 클래스를 포인터 / 레퍼런스 / 함수 파라미터 / 리턴 값으로만 사용합니다. - 이 클래스 변수의 메모리 크기를 구체적으로 알 필요가 없습니다. - 포인터가 아닌 해당 타입을 직접 포함하는 경우 해당 선언부를 직접 include 해야 합니다. ▣ inline / 템플릿 함수에서 이 클래스 내부 함수 / 변수를 호출하지 않습니다. - 이 클래스 내부 함수 / 변수의 기호에 접근할 일이 없습니다. enum 클래스는 크기를 명시해준다면 헤더에서 include를 제거할 수 있습니다. ex) enum class ESample : uint8;
FTimerHandle GravityTimerHandle; float GravityTime; GetWorld()->GetTimerManager().SetTimer(GravityTimerHandle, FTimerDelegate::CreateLambda([&]() { // 코드 구현 // TimerHandle 초기화 GetWorld()->GetTimerManager().ClearTimer(GravityTimerHandle); }), GravityTime, false);// 반복하려면 false를 true로 변경 블루프린터의 Delay노트처럼 일정시간이 지난 후 다음 코드를 실행하는 방법을 C++로 구현하려고 찾아보다가 발견해서 메모합니다.
기반 블루프린트 클래스를 생성(블루프린트로 상속)할 수 있는 최고 단위는 Actor이다.
Interface 함수를 C++에서 구현할 때 해당 함수를 C++에서만 사용하는 방법과 블루프린트에서도 사용하는 방법 2가지로 만들 수 있다. C++ 에서만 사용할 경우 // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreEngine.h" #include "UObject/Interface.h" #include "Interface_Character.generated.h" UINTERFACE(MinimalAPI) class UInterface_Character : public UInterface { GENERATED_BODY() }; class PROJECTCE_API I..
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..