Open shuitian opened 3 months ago
对的,因为编辑器在运行时检测到UObject才会绑定Lua文件; 如果世界中只有Child,那么父类的ReceiveBeginPlay就只是一个打印字符串,Child中调用的父类函数只是打印字符串; 但是父类也放到世界中运行时就会绑定,父类的ReceiveBeginPlay就变成了self.Overridden.ReceiveBeginPlay(self),那在Child的ReceiveBeginPlay中调用的就是self.Overridden.ReceiveBeginPlay(self),会形成死循环。
Cherry pick this PR. This should solve the problem.
测试环境: 蓝图类
DebugBattleBug 只连了ReceiveBeginPlay 父类实现了unlua插件
DebugBattleBug_Child 是DebugBattleBug的子类,蓝图里调用了父类的ReceiveBeginPlay
lua代码中,实现了ReceiveBeginPlay
在测试场景中拖入两个DebugActor
开始运行,会出问题
由于这里调用父类的ReceiveBeginPlay,实际上会调用到lua中去,又会调用到子类蓝图中,疑似出现死循环?