Godot GDScript初学者遇到的问题记录

  1. 添加全局单例设置时,不要在脚本中设置类名

    如果在脚本中定义了类名,类本身就是一个全局的类

  2. Godot中class_name与class 定义类的区别

    两个都是定义类,但**注册范围、访问方式完全不一样:

    class_name是全局注册指令,把这个类注册进项目全局命令空间,整个项目任意脚本,不需要preload,直接可以创建对象,使用Player:new()

    class 只是定义一个文件内部定义类,不会注册全局,外部脚本不能直接创建对象,必须先preload脚本资源:

csharp 复制代码
var scr = preload("res://models/player_data.gd")
var item = scr.ItemData.new()
  1. 类的一些特性
    • class_name定义的类是全局类,不需要prelaod,即可以直接使用,但是不能加入项目设置的全局单例中,但是要以定义静态方式直接引用,不过不能定义信号
    • 定义的类如果没有显式继承任何的其它的类,默认是隐继承RefCounted,即类默认是使用计数器方式进行垃圾回收的。
    • 如果显式继承Object类,那么这个类不会继承RefCounted,即不会被自动回收,需要手动调用.free(),否则会内存泄漏。
    • 类的构造方法是_init()
相关推荐
xiaogai_gai3 天前
BOM 物料清单同步实战:金蝶云星空 → 四化智造 MES 修改场景深度拆解
unity·游戏引擎
/**书香门第*/3 天前
Cocos Creator 打螺丝游戏的实现
游戏引擎·cocos2d·螺丝·打螺丝
mxwin4 天前
Unity Shader 光线追踪原理与实战案例
unity·游戏引擎
xcLeigh5 天前
Unity基础:Instantiate实例化——在运行时动态创建游戏物体
游戏·unity·游戏引擎·教程·instantiate
辻弋20111 天前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
狂野小白兔13 天前
AI游戏制作04——Codex 搭配 Godot MCP 全流程教程
人工智能·游戏·godot
淡海水15 天前
02-02-原理篇-分代GC
算法·unity·c#·游戏引擎·.net·gc
淡海水16 天前
02-03-原理篇-大对象堆
unity·c#·游戏引擎·.net·gc
郝学胜-神的一滴17 天前
C++ Templates 01:拨开迷雾,读懂C++模板经典著作
开发语言·c++·程序人生·游戏·游戏引擎·软件构建
淡海水17 天前
02-01-原理篇-Mark-Sweep与变种算法
算法·unity·c#·游戏引擎·.net·gc