10 - Collecting Pickups

2017-09-18  本文已影响14人  镜月s

为BayyteryCollectorCharacter 添加电池拾取功能
声明函数 CollectPickups()

Paste_Image.png

为该函数绑定输入
进入UE4 ProjectSetting/Input中 添加动作Collect 快捷键C

进入ABatteryCollectorCharacter::SetupPlayerInputComponent 添加

Paste_Image.png

编写CollectPickup函数
void ABatteryCollectorCharacter::CollectPickups()
{
TArray<AActor> CollectedActors;
CollectionSphere->GetOverlappingActors(CollectedActors); // 收集所有与SphereComponent碰撞的actor
for (int32 iCollected = 0; iCollected < CollectedActors.Num(); ++iCollected)
{
APickUp
const TestPickup = Cast<APickUp>(CollectedActors[iCollected]);
if (TestPickup && !TestPickup->IsPendingKill() && TestPickup->IsActive()) //判断如果该物体是PickUp并且没有被杀死 并且处于激活状态
{
TestPickup->WasCollected();
TestPickup->SetActive(false);
}

}

}

运行程序 打开 debug窗口 当人物走到电池旁边 按下C 会出现log

Paste_Image.png
上一篇下一篇

猜你喜欢

热点阅读