在 Godot 4.0.2 中使用导出时类主体错误中出现意外的“标识符”

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

我目前正在使用 Godot 4.0.2 开发一个项目,但在我的脚本中使用 export 关键字时遇到了问题。每次我尝试使用它时,都会收到“类主体中出现意外的‘标识符’”错误。我不确定是什么原因导致此错误或如何解决它。

这是我尝试使用的代码示例:

扩展 Node2D

export var growth_time = 10.0 var is_grown = 假

我试过在网上搜索解决方案,但没有找到任何有用的东西。谁能解释导致此错误的原因以及如何解决?此外,我能做些什么来防止将来发生此错误?

click here for image

game-engine game-development godot
1个回答
0
投票

这是一个叫做

growth_time
的变体变量,它的类型是Variant:

# Godot 3.x or Godot 4.x
var growth_time

这里变量仍然是一个Variant,但是它被初始化为一个

float
值:

# Godot 3.x or Godot 4.x
var growth_time = 10.0

要导出变量(以便它在检查器中可用),在 Godot 3.x 中你这样做了:

# Godot 3.x
export (float) var growth_time

由于变量是Variant类型,不指定类型是无法导出的。这里变量被导出为

float
.

但是,变量仍然是一个Variant。如果您从代码中设置它们,它可能具有非 int 值。但它会在检查器中显示为一个整数。

我们需要解决这个问题。因为在 Godot 4.x 中,你不会那样做。事实上,我们可以在 Godot 3.x 中修复它,它看起来像这样:

# Godot 3.x
export var growth_time:float = 10.0

或者因为你正在初始化它,我们可以隐式设置类型:

# Godot 3.x
export var growth_time := 10.0

现在变量是一个

float
(明确定义或从您用来初始化它的值推断),所以我们不需要告诉它把它导出为一个
float
,因为导出一个'float'因为
float
是默认值(好吧,导出
float
的其他选项也是
float
但您可以指定范围或使用指数比例)。

是的,Godot 3.x 有类型变量。这不是类型提示。

现在,这就是 Godot 4.x 中的样子:

# Godot 4.x
@export var growth_time:float = 10.0

或者像这样:

# Godot 4.x
@export var growth_time := 10.0

那是因为

export
不再是关键字,而是注解。注释是 GDScript 2.0(Godot 4.x 附带的)中的一项新语言功能,它们都以
@
.

开头

这个答案改编自我在 gamedev (link) 的另一个答案。

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