【发布时间】:2020-11-15 03:13:25
【问题描述】:
我想知道如何创建一个脚本,其中包含我想在多个脚本中使用的方法。我不认为我想为它创建一个全局单例,因为我没有存储任何将在多个场景中保留的全局数据。我只收集了一些有用的功能。
【问题讨论】:
我想知道如何创建一个脚本,其中包含我想在多个脚本中使用的方法。我不认为我想为它创建一个全局单例,因为我没有存储任何将在多个场景中保留的全局数据。我只收集了一些有用的功能。
【问题讨论】:
创建自己的库的一种可能方法是创建一个不扩展任何内容的新脚本或extends Object。在函数前使用 static 关键字。
在 my_lib.gd 中
extends Object
static func my_static_function():
print("hello from my_lib.gd")
在您的游戏脚本中,您可以使用preload 函数访问它
const my_library = preload("res://my_lib.gd")
func test():
my_library.my_static_function()
【讨论】:
extends Reference(或者extends Resource,如果你需要序列化)而不是extends Object,因为对象不执行自己的内存管理。与引用和资源不同,对存储在变量中的对象的引用可能会在没有警告的情况下变为无效。
class_name MyLib,它允许在没有预加载的情况下调用函数。无需创建对象实例即可访问常量变量和静态函数。