forked from datawhale/whale-town-front
代码修复: - NetworkManager.gd: 修复参数名冲突和未使用变量警告 - StringUtils.gd: 修复变量名与内置函数char冲突 - ResponseHandler.gd: 移除static关键字,改为实例方法 - AuthScene.gd: 恢复正确的ResponseHandler调用方式 资源清理: - 删除assets/sprites/icon/下的重复图标文件 - 删除UI/Theme/下的重复字体和主题文件 - 统一使用assets/路径下的资源文件 配置修复: - 修复LoginWindow.tscn和main_scene.tscn中的UID引用 - 更新chinese_theme.tres中的字体路径引用 - 添加project.godot调试设置以减少渲染器警告 文档更新: - 更新项目设置指南中的主题和字体路径引用 解决问题: - 修复所有GDScript编译警告 - 解决UID重复冲突警告 - 统一资源文件路径结构 - 保持Web部署兼容性
142 lines
4.1 KiB
Markdown
142 lines
4.1 KiB
Markdown
# 项目设置指南
|
||
|
||
本文档指导你完成WhaleTown项目的Godot编辑器配置,确保开发环境正确设置。
|
||
|
||
## 🎯 AutoLoad 配置
|
||
|
||
项目已经预配置了以下AutoLoad单例,你可以验证配置是否正确:
|
||
|
||
### 1. 打开项目设置
|
||
1. 在Godot编辑器中打开 `Project` → `Project Settings`
|
||
2. 切换到 `AutoLoad` 标签
|
||
|
||
### 2. 验证AutoLoad配置
|
||
确认以下单例已正确配置:
|
||
|
||
| 名称 | 路径 | 单例 |
|
||
|------|------|------|
|
||
| GameManager | `res://_Core/managers/GameManager.gd` | ✅ |
|
||
| SceneManager | `res://_Core/managers/SceneManager.gd` | ✅ |
|
||
| EventSystem | `res://_Core/systems/EventSystem.gd` | ✅ |
|
||
| NetworkManager | `res://_Core/managers/NetworkManager.gd` | ✅ |
|
||
| ResponseHandler | `res://_Core/managers/ResponseHandler.gd` | ✅ |
|
||
|
||
### 3. 如果需要手动添加AutoLoad
|
||
如果某个AutoLoad缺失,可以手动添加:
|
||
|
||
1. 点击 `Add` 按钮
|
||
2. 设置以下信息:
|
||
- **Path**: 对应的脚本路径
|
||
- **Name**: 单例名称
|
||
- **Singleton**: ✅ 勾选
|
||
3. 点击 `Add` 确认
|
||
|
||
## ⚙️ 其他重要设置
|
||
|
||
### 主题配置
|
||
项目使用自定义中文主题:
|
||
- **路径**: `assets/ui/chinese_theme.tres`
|
||
- **字体**: 微软雅黑 (`assets/fonts/msyh.ttc`)
|
||
|
||
### 主场景设置
|
||
- **主场景**: `res://Scenes/Maps/main_scene.tscn`
|
||
- **窗口大小**: 1376x768
|
||
- **窗口模式**: 全屏模式
|
||
|
||
### 渲染设置
|
||
- **渲染器**: GL Compatibility (兼容性优先)
|
||
- **拉伸模式**: Canvas Items
|
||
- **拉伸比例**: Expand
|
||
|
||
## 🧪 验证设置
|
||
|
||
### 1. 测试AutoLoad单例
|
||
在任何脚本中可以直接使用:
|
||
|
||
```gdscript
|
||
func _ready():
|
||
# 测试GameManager
|
||
print("游戏状态: ", GameManager.get_current_state())
|
||
|
||
# 测试SceneManager
|
||
print("当前场景: ", SceneManager.get_current_scene_name())
|
||
|
||
# 测试EventSystem
|
||
EventSystem.emit_event("test_event", {"message": "Hello World"})
|
||
|
||
# 测试NetworkManager
|
||
var request_id = NetworkManager.login("test_user", "test_password")
|
||
print("网络请求ID: ", request_id)
|
||
```
|
||
|
||
### 2. 检查控制台输出
|
||
运行项目后,检查控制台是否有以下信息:
|
||
- ✅ 没有AutoLoad相关错误
|
||
- ✅ 各个管理器初始化成功
|
||
- ✅ 主题和字体加载正常
|
||
|
||
### 3. 测试场景切换
|
||
```gdscript
|
||
# 测试场景管理器
|
||
func test_scene_manager():
|
||
# 切换到主场景
|
||
SceneManager.change_scene("main")
|
||
```
|
||
|
||
## 🔧 常见问题排查
|
||
|
||
### 问题1: AutoLoad脚本找不到
|
||
**症状**: 控制台显示"Cannot load script"错误
|
||
|
||
**解决方案**:
|
||
1. 检查脚本文件是否存在于指定路径
|
||
2. 确认脚本文件没有语法错误
|
||
3. 重新导入项目 (`Project` → `Reload Current Project`)
|
||
|
||
### 问题2: 单例无法访问
|
||
**症状**: 代码中无法访问GameManager等单例
|
||
|
||
**解决方案**:
|
||
1. 确认AutoLoad配置中勾选了"Singleton"
|
||
2. 重启Godot编辑器
|
||
3. 检查脚本中是否有拼写错误
|
||
|
||
### 问题3: 主题显示异常
|
||
**症状**: 界面字体或样式显示不正确
|
||
|
||
**解决方案**:
|
||
1. 检查 `assets/ui/chinese_theme.tres` 文件是否存在
|
||
2. 确认字体文件 `assets/fonts/msyh.ttc` 已正确导入
|
||
3. 在项目设置中重新设置自定义主题
|
||
|
||
### 问题4: 网络请求失败
|
||
**症状**: NetworkManager调用失败
|
||
|
||
**解决方案**:
|
||
1. 检查网络连接
|
||
2. 确认API地址配置正确
|
||
3. 查看ResponseHandler是否正常工作
|
||
|
||
## 📋 配置检查清单
|
||
|
||
完成设置后,请检查以下项目:
|
||
|
||
- [ ] 所有AutoLoad单例配置正确
|
||
- [ ] 主场景可以正常启动
|
||
- [ ] 控制台没有错误信息
|
||
- [ ] 自定义主题加载正常
|
||
- [ ] 中文字体显示正确
|
||
- [ ] 网络管理器可以正常调用
|
||
- [ ] 事件系统工作正常
|
||
- [ ] 场景管理器可以切换场景
|
||
|
||
## 🚀 下一步
|
||
|
||
配置完成后,建议继续阅读:
|
||
- [输入映射配置](输入映射配置.md) - 设置游戏控制
|
||
- [命名规范](../02-开发规范/命名规范.md) - 学习编码规范
|
||
- [架构与通信规范](../02-开发规范/架构与通信规范.md) - 理解项目架构
|
||
|
||
---
|
||
|
||
**💡 提示**: 如果遇到问题,可以参考 [测试指南](../03-技术实现/测试指南.md) 进行更详细的功能验证。 |