我一直在Internet上到处寻找解决方案,但在哪里都找不到一个脚本,该脚本可以让我在Godot 3.1中以字符串形式读取变量的名称
我想做什么:
例如-
var Apple = "mypath/folder/apple.png"
var myArray = ["Apple", "Pear"]
将变量名(字符串)与字符串进行比较的函数-
if (myArray[myposition] == **the required function that outputs variable name as String**(Apple) :
print (Apple) #this prints out the path.
谢谢!
答案 0 :(得分:0)
我认为您要尝试完成的工作可能会有些简化。看来基本上可以解决if (array[apple]) == apple then apple
,但实际上并不能解决程序性问题。似乎需要更多的复杂性。
首先,您可能具有返回所有图标名称的功能,诸如此类。
func get_avatar_names():
var avatar_names = []
var folder_path = "res://my/path"
var avatar_dir = Directory.new()
avatar_dir.open(folder_path)
avatar_dir.list_dir_begin(true, true)
while true:
var avatar_file = avatar_dir.get_next()
if avatar_file == "":
break
else:
var avatar_name = avatar_file.trim_suffix(".png")
avatar_names.append(avatar_name)
return avatar_names
然后在主函数中返回类似的内容,在此您拥有当前关注的名称列表,对于每个名称,请检查头像名称列表,如果匹配,则重建路径并做其他工作:
var some_names = ["Jim","Apple","Sally"]
var avatar_names = get_avatar_names()
for name in some_names:
if avatar_names.has(name):
var img_path = "res://my/path/" + name + ".png"
# load images, additional work, etc...
这就是我在这里采用的方法,希望这是有道理的并且对您有所帮助。
答案 1 :(得分:-1)
难道不能只使用str()函数将任何数据类型转换为stitng吗?
var = str(var)