我有一个EnemySpawner Blueprint Class:
EnemySpawner有一个Spline组件名为" Path"产卵敌人必须遵循的。为此,Enemy的蓝图有另一个名为" Enemy Path"必须在创作时由Enemy Spawner初始化,如上面的屏幕截图所示。
但是,在我的敌人中,如果我尝试访问" EnemyPath",我会收到以下错误:
Blueprint Runtime Error:Accessed None尝试读取属性 来自函数的PathActor:' ExecuteUbergraph_Enemy'来自节点: 图中的DestroyActor:对象中的EventGraph:Enemy with description: 访问无尝试读取属性PathActor
因此,换句话说,Null Pointer Exception。
例如,如果我在Enemy的蓝图中(有测试目的): 样条组件的演员所有者不会被破坏。
即使我尝试分配所有所有者角色,不仅仅是样条曲线组件,它也不起作用。
我还试图在" SpawnActor Enemy"之后在屏幕上打印一些东西。 EnemySpawner的节点以及" Event BeginPlay"敌人的节点,我已经检查过EnemySpawner中的印刷品显然是先发生的,所以唯一的问题是该变量并未真正分配。
我尝试过的最后一件事就是在" Set"之后立即销毁Spline的所有者。节点,直接在EnemySpawner蓝图中,通过从催生的敌人那里得到它,令我惊讶的是,它被摧毁了!
那么,有什么想法正确的做法是什么?
答案 0 :(得分:1)
您可以在BP actor中使用“Expose on Spawn”标志设置任何变量(在BP编辑器中选择变量时在详细信息面板中),这将为使用该值时传入的值添加一个引脚。 SpawnActorFromClass节点。确保将变量设置为“可编辑”。
答案 1 :(得分:0)
我认为也许我们做错了。
在C ++中,直接创建一个类,创建变量,通过创建函数并通过引用传递来修改变量。
我认为,如果Blueprint是一个类(它是),并且该变量是一个变量(它是),那么您真的不能期望在不调用执行该操作的函数的情况下为其分配值...再说一次,我知道引擎可能会为您做...