GDScript。如何在 Godot 中创建自己的库并从游戏脚本访问它

And*_*Uho 3 gdscript godot

我想知道如何创建一个脚本,其中包含我想在多个脚本中使用的方法。我不认为我想为它创建一个全局单例,因为我没有存储任何将在多个场景中保存的全局数据。我收集了一些有用的功能,别无他物。

And*_*Uho 6

创建自己的库的一种可能方法是创建一个不扩展任何内容或extends Object. static在函数前使用关键字。

在 my_lib.gd

extends Object

static func my_static_function():
    print("hello from my_lib.gd")
Run Code Online (Sandbox Code Playgroud)

在您的游戏脚本中,您可以使用preload函数访问它

const my_library = preload("res://my_lib.gd")

func test():
    my_library.my_static_function()
Run Code Online (Sandbox Code Playgroud)

  • 通常[推荐](https://docs.godotengine.org/en/latest/getting_started/workflow/best_practices/node_alternatives.html)使用“extends Reference”(如果需要序列化则使用“extends Resource”)而不是“扩展 Object`,因为对象不执行自己的内存管理。与引用和资源不同,对存储在变量中的对象的引用可能会在没有警告的情况下变得无效。 (6认同)
  • 我会给 my_lib.gd 一个“class_name MyLib”,它将允许在不预加载的情况下调用函数。无需创建对象实例即可访问常量变量和静态函数。 (3认同)