Что бы я сделал, это использовал BlueprintNativeEvent
.Это позволит вам создать Implementation
функцию того, что вы хотите, чтобы происходило в C ++, а также реализацию проекта, которая может отличаться для каждого проекта этого типа объекта.
Это довольно просточтобы использовать, например, в заголовочном файле вашего персонажа:
/** 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 series или документы .