如何解决收到此错误“add_child:参数“p_child”为空”并且似乎无法追踪它
add_child:参数“p_child”为空
我怀疑这是 Godot 编辑器错误,因为游戏运行良好。
这个很难描述,但基本上我有一个从网格运行的“记忆”纸牌游戏。您选择难度,然后按新游戏。第一次,没有错误,但如果您赢了或选择“新游戏”,错误就会开始堆积,而且似乎每次都翻倍,每次按下新游戏按钮时最多会出现 100 个错误。
谷歌上唯一的东西似乎与 C++ 相关(p_child 的名字肯定暗示了这一点)但我没有使用 C++,我使用的是 GDScript ......这就是为什么我在想它可能只是一个编辑器错误,Godot 对我没有以 C++ 方式 add_child 感到困惑。
有什么想法吗?
编辑 产生错误的代码是这样的:
func dealDeck():
randomize()
deck.shuffle()
var c = 0
while c < deck.size():
Game.get_node('grid').add_child(deck[c])
c += 1
Game 只是对主场景 (/root/Memory) 的引用,而deck 是之前创建的包含所有卡片的数组。我 99% 确定问题不在于套牌创建。
需要明确的是,我在开始新游戏时正在清理网格,但我怀疑整个过程出了问题(即使游戏正在运行)
解决方法
由于 Godot 是用 C++ 编写的,因此控制台中给出的错误来自编辑器的 C++ 端。这并不意味着您的 GDScript 代码不对错误负责。您似乎正在尝试向对象添加子项,但您尝试添加的子项为空。这可能是由于许多原因。您应该首先查看在新游戏开始时如何将卡片添加到场景中。此外,如果您能向我们展示一些代码,我们或许可以为您提供进一步帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。