Godot - 单例 / Singleton

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());
···

自己动手试试看吧

官方教程:https://docs.godotengine.org/en/3.1/getting_started/step_by_step/singletons_autoload.html?highlight=singleton

问题:

官方例子可以使用gd代码直接单例,但是没有成功在3.1下,有懂的小伙伴可以留言提供一下接到,谢谢。
这里测试如果使用纯gd代码,在整个代码生命周期都不会被创建,只留了一个类名声明,未初始化
我会把这个问题提交给开发者

问题2:

当用纯gd代码作为单例时,绝对不要加关键字tool,也不要加class_name

问题发现了,但是只能等官方新版本解决,同数据持久化遇到的bug一样,问题来自开发软件本身,可能软件存在内存泄露,导致功能坍塌,重启app后这些功能都得到了恢复。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容