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()
相关推荐
魔士于安6 天前
unity 丑陋哥布林 哥布林有humannoid 动画没 带动画
unity·游戏引擎·材质·贴图·模型
淡海水7 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
小小数媒成员7 天前
UGUI 性能优化(详细,全,深入)
开发语言·unity·游戏引擎
goujunwe8 天前
GEO 评估方法:如何自测你的内容,会不会被 AI 引用
搜索引擎·网络安全·游戏引擎·全文检索·中文分词
林川~019 天前
Unity 常用 API 与核心类全解:从生命周期到协程,附性能避坑清单(Unity 6 适配)
unity·游戏引擎·常用api
WiChP11 天前
【V0.1B16】从零开始的2D游戏引擎开发之路
开发语言·算法·游戏引擎
狂人开飞机12 天前
23、实战平台跳跃游戏
游戏·游戏引擎·godot
淡海水12 天前
11-02-Unity-Mono-vs-IL2CPP-两种脚本后端的数据结构行为差异
数据结构·unity·游戏引擎·il2cpp·mono
彧azz12 天前
初学Unity:编辑器
笔记·学习·unity·游戏引擎