UE4:从父类中的另一个actor调用函数

问题描述

我目前有一个问题,因为我不知道如何解决这个问题。我有一个演员应该在“开始重叠事件”中调用一个演员的函数

可以触发此事件的其他actor都基于父蓝图,其中也实现了该功能。我的第一个想法是直接投射到父 BP。但那失败了。

也许你可以通过这个小图形更好地理解我的意思。

Graphic

Screenshot

你知道我该如何解决这个问题吗?

解决方法

你不能从变量“Target”调用函数 GetDamage() 因为它是 AActor 类 - 他对孩子的功能一无所知。 如果您的重叠演员(“OtherActor”)是带有 GetDamage 的 TowerBaseBP,那么您绝对可以投射到它。您可以一直执行直到设置“Target”(在这种情况下需要将此变量从 AActor 更改为 TowerBaseBP),或者直到调用相关函数 GetDamage()。

  1. 检查 ComponentBeginOverlap 上的“OtherActor” - 是您的子演员和所需的父演员吗?
  2. 如果这样转换到父类(不是子类)并设置您的“目标”变量(需要是父类);
  3. 然后尝试从 Target 调用 GetDamage();
  4. 如果您仍然无法调用它,我有两个建议:
  • a) 检查您的子类 - 也许您覆盖了 GetDamage() 和 忘记添加 CallToParent 函数;
  • b) 从 1-3 点仔细检查“OtherActor”和“Target”;