hea*_*999 4 game-development game-engine godot
我目前正在 Godot 4.0.2 中开发一个项目,但在脚本中使用 export 关键字时遇到问题。每次我尝试使用它时,都会收到“类主体中出现意外的‘标识符’”错误。我不确定是什么原因导致此错误或如何修复它。
这是我尝试使用的代码示例:
扩展 Node2D
导出 var Growth_time = 10.0 var is_grown = false
我尝试过在线搜索解决方案,但没有找到任何有帮助的内容。谁能解释导致此错误的原因以及如何修复它?此外,我可以采取什么措施来防止将来再次发生此错误?

这是一个名为 的变量growth_time,它的类型是 Variant:
# Godot 3.x or Godot 4.x\nvar growth_time\nRun Code Online (Sandbox Code Playgroud)\n这里的变量仍然是一个 Variant,但它是用一个float值初始化的:
# Godot 3.x or Godot 4.x\nvar growth_time = 10.0\nRun Code Online (Sandbox Code Playgroud)\n要导出变量(以便在检查器中可用),在 Godot 3.x 中,您执行了以下操作:
\n# Godot 3.x\nexport (float) var growth_time\nRun Code Online (Sandbox Code Playgroud)\n由于该变量的类型为 Variant,因此如果不指定类型则无法导出它。这里变量被导出为float.
然而,该变量仍然是一个 Variant。float如果您从代码中设置它们,则它可能具有不存在的值。float但它会在检查器中显示为。
我们需要解决这个问题。因为在 Godot 4.x 中,你不需要这样做。事实上,我们可以在 Godot 3.x 中解决这个问题,它看起来像这样:
\n# Godot 3.x\nexport var growth_time:float = 10.0\nRun Code Online (Sandbox Code Playgroud)\n或者,由于您正在初始化它,我们可以隐式设置类型:
\n# Godot 3.x\nexport var growth_time := 10.0\nRun Code Online (Sandbox Code Playgroud)\n现在变量是 a float(显式定义或从用于初始化它的值推断),因此我们不需要写入float,export因为将 \xc2\xb4float\xc2\xb4 导出为 afloat是默认值(好吧,导出 a 的其他选项float也是float,但您可以指定范围或使用指数比例)。
是的,Godot 3.x 有类型变量。它不是类型提示。
\n现在,Godot 4.x 中的情况如下:
\n# Godot 4.x\n@export var growth_time:float = 10.0\nRun Code Online (Sandbox Code Playgroud)\n或者像这样:
\n# Godot 4.x\n@export var growth_time := 10.0\nRun Code Online (Sandbox Code Playgroud)\n这是因为export不再是关键字,而是注释。注释是 GDScript 2.0(Godot 4.x 附带的)中的一项新语言功能,它们都以@.
这个答案改编自我在 gamedev 的另一个答案(链接)。
\n