从播放器进行光线投射,击中对象并引发自定义事件C ++ UE4

时间:2018-06-13 13:58:41

标签: c++ unreal-engine4 raycasting

我已经在圈子里呆了一天,现在试图让这一切发展,我只是无处可去。我正在尝试在场景中使用单个动画创建多个对象,当我从我的播放器中触发一个光线投射并且它击中一个时,让UFunction(blueprintimplementableevent)关闭它所击中的对象。请帮帮我,这绝对让我感到难过。

1 个答案:

答案 0 :(得分:0)

我要做的是使用BlueprintNativeEvent。这将允许您创建要在C ++中发生的事情的Implementation函数,以及蓝图实现,对于该对象类型的每个蓝图可以有所不同。

使用它也很简单,例如,在角色的头文件中:

/** Called when the player presses the fire key */
UFUNCTION(BlueprintNativeEvent, Category = "Shooting")
void OnHit();
virtual void OnHit_Implementation();

现在你的Cpp:

 void AMyGameCharacter::OnHit_Implementation()
 {
     UE_LOG(LogTemp, Warning, TEXT("OnHit_Implementation!"));
     // Do whatever stuff you want to do in C++ here
 }

现在,在你的角色/演员蓝图中,只需转到事件图,右键单击,然后添加OnHit类型的事件。确保您回拨父OnHit事件(右键单击事件并点击“添加对父函数的调用”)

如果您想要一个例子,可以查看C++ Battery Collector seriesdocs