📜  按名称 gdscript 调用函数 (1)

📅  最后修改于: 2023-12-03 15:25:53.878000             🧑  作者: Mango

按名称 GDScript 调用函数

在 GDScript 中,我们通常会使用 . 运算符来调用一个对象的方法。不过,有时候我们希望通过字符串来指定要调用的方法名称。这时候就可以使用 call() 函数来动态地调用函数。本文将介绍如何在 GDScript 中按名称调用函数。

call()

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_func()

如果要在某个对象上调用一个私有函数,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() 函数,我们可以动态地调用一个对象的方法,实现更加灵活的编程。