📅  最后修改于: 2023-12-03 15:25:53.878000             🧑  作者: Mango
在 GDScript 中,我们通常会使用 .
运算符来调用一个对象的方法。不过,有时候我们希望通过字符串来指定要调用的方法名称。这时候就可以使用 call()
函数来动态地调用函数。本文将介绍如何在 GDScript 中按名称调用函数。
call()
是一个内置函数,可以用来动态地调用一个对象的方法。它的语法如下:
call(method_name, ...args)
其中,method_name
为要调用的方法名称,...args
是传递给方法的参数列表。我们可以通过这种方式,在运行时根据字符串来调用一个方法。
示例:
# 定义一个名为 "say_hello" 的函数
func say_hello(name: String):
print("Hello, " + name)
# 调用 "say_hello" 函数
call("say_hello", "Alice")
上面的代码中,我们通过 call("say_hello", "Alice")
的方式来调用名为 "say_hello" 的函数,并将 "Alice" 当作参数传递给函数。
如果要在某个对象上调用一个私有函数,call()
就不太好用了。这时候可以使用 call_func()
函数。它的语法与 call()
函数类似,但可以访问对象的私有函数。
示例:
# 定义一个类
class MyClass:
func _private_method(num: int):
print("Private method called with " + str(num))
func public_method(name: String):
print("Hello, " + name)
# 创建一个 MyClass 实例
var obj = MyClass.new()
# 调用私有函数
obj.call_func("_private_method", 42)
# 调用公有函数
obj.call_func("public_method", "Alice")
在上面的代码中,我们定义了一个名为 MyClass
的类,并在类中定义了一个私有函数 _private_method
。我们创建了一个 MyClass
实例 obj
,然后通过 call_func()
调用了私有函数和公有函数。
本文介绍了如何在 GDScript 中按名称调用函数。通过使用 call()
和 call_func()
函数,我们可以动态地调用一个对象的方法,实现更加灵活的编程。