获取蓝图资源路径
在UE中右键资源,选择Copy Reference即可,后续用到的路径、Name都是取自于此 文章后续中将此抽象为“AssetName”
- 材质:
static ConstructorHelpers::FObjectFinder<UMaterial> MMaterialAsset(TEXT(AssetName));
if (MMaterialAsset.Succeeded())
{
//使用材质:MMaterialAsset.Object
}
- ChildComponent:
//假设蓝图类的父类为BPP
UObject* loadObj = StaticLoadObject(UBlueprint::StaticClass(), NULL, TEXT(Name));
if (loadObj != nullptr)
{
UBlueprint* ubp = Cast<UBlueprint>(loadObj);
TSubclassOf<BPP> MyComponent = ubp->GeneratedClass;
//如果是要实例化它
BPP* sss = static_cast<AOrbitCameraBase*>(CreateDefaultSubobject(TEXT("The Name"), BPP::StaticClass(), MyComponent,false, false));
//如果是一个actor,要将其作为子Actor:
UChildActorComponent* childActor = CreateDefaultSubobject<UChildActorComponent>(TEXT("InventoryCamera"));
childActor->SetChildActorClass(MyComponent);
childActor->SetupAttachment(RootComponent);
//如果这蓝图类本来就是一个Component,实例化直接attach即可
//新建一个的另一种方法, 不可在构造器中运行
FActorSpawnParameters SpawnInfo;
SpawnInfo.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
BPP* actor = GWorld->SpawnActor<BPP>(MyComponent, SpawnInfo);
}
近期评论