Types 如何检测存储在数组中的任何类型的变量-Godot?
我有一个包含节点和字符串的数组。在通过循环传递时,我想根据所读取对象的类型调用某些函数。我尝试执行以下操作来测试该类型-Types 如何检测存储在数组中的任何类型的变量-Godot?,types,godot,gdscript,Types,Godot,Gdscript,我有一个包含节点和字符串的数组。在通过循环传递时,我想根据所读取对象的类型调用某些函数。我尝试执行以下操作来测试该类型- if to_fry_array[fry_looper].is_class("Node2D"): to_fry_array[fry_looper].show() else: print (to_fry_array[fry_looper]) 当在数组中读取字符串到\u fry\u数组时,该代码抛出错误。错误- 无效呼叫。基“String”中不存在函数“is_cl
if to_fry_array[fry_looper].is_class("Node2D"):
to_fry_array[fry_looper].show()
else:
print (to_fry_array[fry_looper])
当在数组中读取字符串到\u fry\u数组
时,该代码抛出错误。错误-
无效呼叫。基“String”中不存在函数“is_class”
如何修改此代码,使其对所有类型的对象/变量都具有通用性?并不是每种类型都有方法
是\u class
,但幸运的是,您可以使用运算符typeof
来实现所需
if typeof(obj) == TYPE_OBJECT and obj.is_class("Node2D"):
print("Node2D: ", obj)
elif typeof(x) == TYPE_STRING:
print("String: ", obj)
在你的特殊情况下:
if typeof(to_fry_array[fry_looper]) == TYPE_OBJECT and \
to_fry_array[fry_looper].is_class("Node2D"):
to_fry_array[fry_looper].show()
else:
print (to_fry_array[fry_looper])
函数是GoDot 3.0中引入的
如果未识别该函数,则可能您使用的是旧版本
我建议使用get_class()或typeof()函数作为替代
研究链接: