UE4:C++动态添加UStaticMeshComponent

1. 构造函数内添加
xxActor::xxActor()
{
//tank mesh
static ConstructorHelpers::FObjectFinder TankStaticMesh(TEXT(“/Game/Meshs/TwinStick/TwinStickUFO.TwinStickUFO”));
TankMesh = CreateDefaultSubobject(TEXT(“TankMesh”));
TankMesh->SetStaticMesh(TankStaticMesh.Object);
TankMesh->SetCollisionProfileName(UCollisionProfile::Pawn_ProfileName);
RootComponent = TankMesh;
}

2. 构造函数外添加(一定要添加RegisterComponent(),否则不会显示!)
bool AItemActor::InitComponent(FVector loc, FRotator rot)
{
bool bRtn = false;
//mesh
m_pMeshComponent = (UStaticMeshComponent*)NewObject(this, TEXT(“Mesh”));
m_pStaticMesh = CreateStaticMesh(m_ItemType);
if (m_pMeshComponent && m_pStaticMesh)
{
m_pMeshComponent->SetStaticMesh(m_pStaticMesh);
m_pMeshComponent->SetCollisionProfileName(UCollisionProfile::Pawn_ProfileName);
m_pMeshComponent->SetRelativeRotation(rot);
m_pMeshComponent->SetRelativeLocation(loc);
m_pMeshComponent->RegisterComponent();
m_pMeshComponent->OnComponentHit.AddDynamic(this, &AItemActor::OnHit);

    RootComponent = m_pMeshComponent;
    bRtn = true;
}

return bRtn;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值