Godot Engine-单例模式

截止到3.1版GDScript支持声明static 方法但是不支持声明static 变量,我想主要是想简化整个系统的设计,这样对象的实例化顺序就可以完全依据节点树了。然而问题来了,如果想实现Singleton怎么办?不能声明static变量臣妾做不到啊。这个问题Godot已经为我们想到了,正如我之前所说“语言不够引擎来凑”,Godot提供了一个AutoLoad机制,请见官方文档《Singletons (AutoLoad)》里面文字配图说明得审视贴心到位,本文就不再敖述了。

范例:

定义一个SomeManager类

extends Node

#派生自Node
#不要给类起名字,即使用匿名类,因为3.1中支持定义类名,这样就会和注册在AutoLoad中的名字冲突


func do_something():
	
	pass

extends RigidBody2D

#使用class_name关键字定义类名
class_name Bird

const velocity : Vector2 = Vector2(0,-200)

func _ready():
	SomeManager.do_something()
	pass

其中SmoeManager就是注册在AutoLoad中的名字,是全局变量名而不是类名

猜你喜欢

转载自blog.csdn.net/hello_tute/article/details/85260847