当KinematicBody2D存储在JSON文件中-Godot是什么意思?

问题描述 投票:0回答:1

[写了一些文件保存在Godot中的JSON文件中之后。我将信息保存在名为LData的变量中,并且该变量正在运行。 LData看起来像这样:

{
   "ingredients" : [
      "[KinematicBody2D:1370]"
   ],
   "collected" : [
      {
         "collected" : true,
         "iname" : "Pineapple"
      },
      {
         "iname" : "Banana",
         "collected" : false
      }
   ]
}

文件显示KinematicBody2D:1370是什么意思?我了解它正在将节点保存在文件中-还是仅保存字符串?是否也在保存节点的属性?

[当我尝试检索数据时-分配给已保存的KinematicBody2D的变量。]​​>

代码:

for ingredient in LData.ingredients:
        print(ingredient.iname)

错误:

无效的获取索引名称'iname'(基于'String')]

我假设数据存储为字符串,我需要放置一些代码以获取保存的确切节点。使用get_node也会引发错误。

代码:

for ingredient in LData.ingredients:
        print(get_node(ingredient).iname)

错误:

无效的获取索引'iname'(基于'null实例')] >>

当说[KinematicBody2D:1370]时,它到底存储了什么信息?如何访问变量iname和其他任何变量-在加载游戏时分配给节点的变量-并不会在整个游戏中更改?

[写了一些文件保存在Godot中的JSON文件中之后。我将信息保存在名为LData的变量中,并且该变量正在运行。 LData看起来像这样:{“ ingredients”:[“ [...

json nodes loading godot gdscript
1个回答
0
投票

[KinematicBody2D:1370]只是Node的字符串表示形式,它来自Object.to_string

返回代表对象的字符串。如果未覆盖,则默认为“ [ClassName:RID]”。

© www.soinside.com 2019 - 2024. All rights reserved.