我有一个带有公开的 UPROPERTY
的 C++ 类,该类是通过蓝图类扩展的。我使用蓝图来设置属性的值。
现在我要做的是从此蓝图类生成一个 Actor,并让我的 C++ 代码使用蓝图中设置的属性。如果我将蓝图类的一个实例从虚幻编辑器拖到世界中,一切都会很好。但是,如果我从我的默认 GameMode
类动态生成同一蓝图类的这个 actor,我可以看到该类的一个实例已添加到世界中(我在 World Outliner 中看到它)但是当 C++ 代码运行时,从蓝图中设置的值不存在。
为什么以不同方式生成蓝图类(一种方法是将其从编辑器拖入世界,另一种方法是从 GameMode 类中生成)会导致不同的结果?如果 actor 是从 GameMode
类生成的,为什么我无法访问蓝图数据?
最佳答案
您确定要从 GameMode 生成派生的 Blueprint 类 的实例而不是 C++ 父类吗?
同时检查当您尝试访问成员变量时,您是否将实例转换为 Blueprint 类 而不是 C++ 类。
如果您还没有这样做,最好附加 _BP
或类似于所有 Blueprint 派生类的东西,以确保您始终知道您正在处理的是哪个版本。
关于c++ - 虚幻引擎 : Accessing blueprint instance data of dynamically spawned actor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37869960/