
添加全局单例设置时不要在脚本中设置类名如果在脚本中定义了类名类本身就是一个全局的类Godot中class_name与class 定义类的区别两个都是定义类但**注册范围、访问方式完全不一样class_name是全局注册指令把这个类注册进项目全局命令空间整个项目任意脚本不需要preload直接可以创建对象使用Player:new()class 只是定义一个文件内部定义类不会注册全局外部脚本不能直接创建对象必须先preload脚本资源varscrpreload(res://models/player_data.gd)varitemscr.ItemData.new()类的一些特性class_name定义的类是全局类不需要prelaod即可以直接使用但是不能加入项目设置的全局单例中但是要以定义静态方式直接引用不过不能定义信号定义的类如果没有显式继承任何的其它的类默认是隐继承RefCounted即类默认是使用计数器方式进行垃圾回收的。如果显式继承Object类那么这个类不会继承RefCounted即不会被自动回收需要手动调用.free()否则会内存泄漏。类的构造方法是_init()