fix/verification-code-button-state #5
@@ -1,28 +1,142 @@
|
||||
# 项目设置指南
|
||||
|
||||
## AutoLoad 配置
|
||||
本文档指导你完成WhaleTown项目的Godot编辑器配置,确保开发环境正确设置。
|
||||
|
||||
在 Godot 编辑器中设置 NetworkManager 为全局单例:
|
||||
## 🎯 AutoLoad 配置
|
||||
|
||||
1. 打开 `Project` → `Project Settings`
|
||||
项目已经预配置了以下AutoLoad单例,你可以验证配置是否正确:
|
||||
|
||||
### 1. 打开项目设置
|
||||
1. 在Godot编辑器中打开 `Project` → `Project Settings`
|
||||
2. 切换到 `AutoLoad` 标签
|
||||
3. 添加新的 AutoLoad:
|
||||
- **Path**: `res://core/managers/NetworkManager.gd`
|
||||
- **Name**: `NetworkManager`
|
||||
|
||||
### 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` 确认
|
||||
|
||||
## 验证设置
|
||||
## ⚙️ 其他重要设置
|
||||
|
||||
### 主题配置
|
||||
项目使用自定义中文主题:
|
||||
- **路径**: `UI/Theme/MainTheme.tres`
|
||||
- **字体**: 微软雅黑 (`UI/Theme/Fonts/msyh.ttc`)
|
||||
|
||||
### 主场景设置
|
||||
- **主场景**: `res://Scenes/Maps/main_scene.tscn`
|
||||
- **窗口大小**: 1376x768
|
||||
- **窗口模式**: 全屏模式
|
||||
|
||||
### 渲染设置
|
||||
- **渲染器**: GL Compatibility (兼容性优先)
|
||||
- **拉伸模式**: Canvas Items
|
||||
- **拉伸比例**: Expand
|
||||
|
||||
## 🧪 验证设置
|
||||
|
||||
### 1. 测试AutoLoad单例
|
||||
在任何脚本中可以直接使用:
|
||||
|
||||
```gdscript
|
||||
func _ready():
|
||||
var request_id = NetworkManager.login("username", "password", callback)
|
||||
print("请求ID: ", request_id)
|
||||
# 测试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相关错误
|
||||
- ✅ 各个管理器初始化成功
|
||||
- ✅ 主题和字体加载正常
|
||||
|
||||
- 确保 NetworkManager.gd 和 ResponseHandler.gd 文件存在
|
||||
- 重启 Godot 编辑器以确保 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. 检查 `UI/Theme/MainTheme.tres` 文件是否存在
|
||||
2. 确认字体文件 `UI/Theme/Fonts/msyh.ttc` 已正确导入
|
||||
3. 在项目设置中重新设置自定义主题
|
||||
|
||||
### 问题4: 网络请求失败
|
||||
**症状**: NetworkManager调用失败
|
||||
|
||||
**解决方案**:
|
||||
1. 检查网络连接
|
||||
2. 确认API地址配置正确
|
||||
3. 查看ResponseHandler是否正常工作
|
||||
|
||||
## 📋 配置检查清单
|
||||
|
||||
完成设置后,请检查以下项目:
|
||||
|
||||
- [ ] 所有AutoLoad单例配置正确
|
||||
- [ ] 主场景可以正常启动
|
||||
- [ ] 控制台没有错误信息
|
||||
- [ ] 自定义主题加载正常
|
||||
- [ ] 中文字体显示正确
|
||||
- [ ] 网络管理器可以正常调用
|
||||
- [ ] 事件系统工作正常
|
||||
- [ ] 场景管理器可以切换场景
|
||||
|
||||
## 🚀 下一步
|
||||
|
||||
配置完成后,建议继续阅读:
|
||||
- [输入映射配置](输入映射配置.md) - 设置游戏控制
|
||||
- [命名规范](../02-开发规范/命名规范.md) - 学习编码规范
|
||||
- [架构与通信规范](../02-开发规范/架构与通信规范.md) - 理解项目架构
|
||||
|
||||
---
|
||||
|
||||
**💡 提示**: 如果遇到问题,可以参考 [测试指南](../03-技术实现/测试指南.md) 进行更详细的功能验证。
|
||||
Reference in New Issue
Block a user