Godot的单例和其他的语言写法不一样,不是通过构造类来实现的。。而是通过设置,没有错,类还是普通的类,声明成单例就行了。
接下来我来给你一步一步演示
1. 创建一个简单的单例模型
创建一个Node2D,并创建对应的类
extends Node
class_name Conf
func getStr():
return "hellow"
2. 绑定成单例
打开项目设置
到这个页面
找到你需要绑定的类
设置好调用名称后,点击添加
上面截图已经添加好了
3.检查
运行测试,选择树结构的远程模式,你会看到实时运行时已经帮你创建好了这个Conf
4. 调用
调用很简单,只要像普通的方式一样调用就好了
···
var gc = get_node("/root/Conf")
print(gc. getStr());
···
自己动手试试看吧
问题:
官方例子可以使用gd代码直接单例,但是没有成功在3.1下,有懂的小伙伴可以留言提供一下接到,谢谢。
这里测试如果使用纯gd代码,在整个代码生命周期都不会被创建,只留了一个类名声明,未初始化
我会把这个问题提交给开发者
问题2:
当用纯gd代码作为单例时,绝对不要加关键字tool,也不要加class_name
问题发现了,但是只能等官方新版本解决,同数据持久化遇到的bug一样,问题来自开发软件本身,可能软件存在内存泄露,导致功能坍塌,重启app后这些功能都得到了恢复。。。