当前位置: 首页 > news >正文

【 Godot 4 学习笔记】命名规范

命名规范

类型命名规范示例
文件与文件夹snake_case(蛇形)player_controller.gd,assets/
类名 / 脚本名PascalCase(大驼峰)PlayerController,YAMLParser
场景节点名PascalCase(大驼峰)HitBox,Camera3D,Player
函数 / 方法snake_case(蛇形)func load_level():
变量 / 信号snake_case(蛇形)var player_health,signal door_opened
常量 / 枚举成员CONSTANT_CASE(全大写)const MAX_SPEED = 200

文件夹结构。

这套结构采用了“按功能模块分类”的逻辑,非常适合中大型项目的长期维护:

res:// (项目根目录) ├── addons/ # 第三方插件(从资产商店下载的插件放这里) ├── assets/ # 纯美术与音频资源(不参与逻辑,只负责存放素材) │ ├── audio/ │ │ ├── music/ # 背景音乐 │ │ └── sfx/ # 音效 │ ├── fonts/ # 字体文件 (.ttf, .otf) │ ├── images/ # 通用图片(如Logo、背景图) │ ├── sprites/ # 精灵图/贴图 │ ├── textures/ # 3D纹理或程序化材质贴图 │ └── models/ # 3D模型文件 (.glb, .obj) ├── scenes/ # 所有的场景文件 (.tscn) │ ├── actors/ # 游戏中的动态实体 │ │ ├── player/ # 玩家相关(如 player.tscn, player.gd) │ │ ├── enemies/ # 敌人相关 │ │ └── npcs/ # NPC相关 │ ├── levels/ # 关卡与地图场景 │ │ ├── world_map.tscn │ │ └── level_01.tscn │ ├── ui/ # UI界面场景 │ │ ├── main_menu.tscn │ │ ├── game_hud.tscn │ │ └── pause_panel.tscn │ └── systems/ # 全局系统场景(如 autoload 的单例场景) ├── scripts/ # 独立的 GDScript 脚本文件 (.gd) │ ├── globals/ # 全局单例脚本(非场景类,如 global_data.gd) │ ├── components/ # 可复用的组件化脚本(如 health_component.gd) │ ├── utils/ # 纯工具类、算法类脚本 │ └── resources/ # 自定义 Resource 资源的配套脚本 ├── resources/ # 游戏数据资源 (.tres, .res) │ ├── items/ # 物品数据(如 sword.tres, potion.tres) │ ├── characters/ # 角色属性配置数据 │ └── levels/ # 关卡专属的配置数据 └── docs/ # 项目开发文档(Godot导出时会自动忽略此文件夹) ├── design.md # 核心设计草案 └── todo.md # 开发待办清单

结构设计核心思路

  1. assets/scenes/彻底分离
    assets/文件夹只负责存放最原始的素材(图片、声音、模型),而scenes/负责将这些素材组装成带有逻辑的游戏对象。这样做的好处是,当你的项目变大时,找一张图和找一个游戏场景不会混在一起。

  2. scripts/独立存放
    虽然 Godot 允许把.gd脚本和.tscn场景放在同一个文件夹里,但对于稍微复杂一点的项目,将纯代码脚本抽离到scripts/目录下,会让你的版本控制(Git)提交记录更加清晰,也方便复用代码。

  3. 充分利用resources/管理数据
    Godot 强大的自定义资源(Custom Resources)系统非常适合做数值策划。将物品的属性、敌人的血量等数据剥离出来放在resources/里,以后你想调整数值平衡时,完全不需要去碰复杂的代码逻辑。

  4. 善用docs/文件夹
    在根目录建一个docs/用来放你的设计草稿、待办事项或者 AI 对话生成的需求文档。Godot 在打包导出游戏时,默认只会打包引擎识别的资源文件,这些.md.txt文档不会被塞进最终的游戏包里,所以你可以放心地把项目笔记存在这里。

http://www.jsqmd.com/news/869478/

相关文章:

  • VN设备通道乱序问题解析与Vector硬件固定配置实战
  • 查看连接手机热点的设备IP
  • 襄阳市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 小米K30U Ubuntu内核编译:从环境搭建到boot.img打包全流程
  • 南通市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 靠谱的XR三维场景建模企业推荐,深入分析各公司优势特色 - myqiye
  • AI饲寻:适配智能应用场景
  • 瑞萨MCU的AI战略:从边缘计算到嵌入式AI部署实战
  • 如何高效使用B站视频下载工具:DownKyi专业用户的全面技巧指南
  • 孝感市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 南阳市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 有实力的交通事故诉讼律师分析,处理交通事故厉害的律师哪家靠谱 - myqiye
  • 多合一烧写器设计:从接口协议到硬件实现的嵌入式开发利器
  • RT-Thread全局中断操作:原理、应用与低功耗设计关键
  • Rainmeter桌面美化终极指南:轻松打造个性化Windows桌面的完整教程
  • 多合一烧写器技术解析:从接口协议到选型实战
  • 百度智能云走进文博会:四方战略合作开启AI+IP新叙事
  • 内江市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 晋城市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 工业触摸一体机应用于汽车工厂,实现标准化作业指导
  • 基于EM9283与FPGA的工业便携式WiFi数据终端设计实战
  • Linux文件查找与压缩解压核心命令实战指南
  • 宁波市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • ESP32/ESP8266固件备份全攻略:esptool与flash_download_tool实战详解
  • 软件研发 --- 网络安全 之 putty生成无密码登录密钥
  • 晋中市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 嵌入式开发新趋势:从硬件参数到场景方案,AI与可靠性成关键
  • Linux文件操作实战:find、grep、tar命令组合应用与避坑指南
  • 荆门市2026黄金回收本地口碑商家榜:黄金首饰+ 白银+ 铂金+ 彩金回收门店及联系方式推荐 - 盛世金银回收
  • 极限编程XP