5.8 KiB
5.8 KiB
脚本管理界面使用指南
概述
脚本管理界面已集成到主程序中,提供了完整的脚本创建、管理、挂载和使用功能。编辑功能可以通过外部编辑器进行。
功能特性
1. 脚本系统管理
- ✅ 脚本创建和模板选择
- ✅ 脚本加载和重载
- ✅ 热重载功能(自动检测文件变化)
- ✅ 脚本挂载到游戏对象
- ✅ 脚本启用/禁用控制
2. 界面组件
- ✅ 脚本菜单(菜单栏)
- ✅ 脚本管理面板(右侧停靠窗口)
- ✅ 属性面板脚本信息显示
- ✅ 实时状态更新
使用方法
访问脚本功能
方法1:通过菜单栏
- 点击菜单栏 → 脚本
- 选择相应的功能:
- 创建脚本... - 快速创建新脚本
- 加载脚本文件... - 从文件加载脚本
- 重载所有脚本 - 重新加载所有脚本
- 启用热重载 - 切换热重载功能
- 脚本管理器 - 打开脚本管理面板
方法2:通过脚本管理面板
- 查看右侧停靠窗口
- 点击 脚本管理 标签页
- 使用面板中的各种控件
脚本管理面板详解
脚本系统状态组
- 脚本系统状态:显示系统是否正在运行
- 热重载状态:显示热重载是否启用
创建脚本组
- 脚本名称:输入新脚本的名称
- 模板选择:选择脚本模板
basic:基础脚本模板movement:移动相关脚本模板animation:动画相关脚本模板
- 创建脚本:点击按钮创建脚本文件
可用脚本组
- 脚本列表:显示所有可用的脚本
- 双击脚本名称:显示提示(将来可打开外部编辑器)
- 加载脚本:重新加载选中的脚本
- 重载全部:重新加载所有脚本
脚本挂载组
- 选中对象显示:显示当前选中的游戏对象
- 脚本选择:从下拉列表选择要挂载的脚本
- 挂载按钮:将脚本挂载到选中对象
- 已挂载脚本列表:显示对象上的所有脚本及其状态
- ✓ 表示脚本已启用
- ✗ 表示脚本已禁用
- 卸载选中脚本:从对象移除选中的脚本
属性面板脚本信息
当选择一个游戏对象时,属性面板会显示:
脚本信息区域
- 已挂载脚本:列出对象上的所有脚本
- 脚本名称:显示每个脚本的名称和状态
- 启用/禁用按钮:控制每个脚本的运行状态
- 绿色按钮:脚本已启用,点击禁用
- 红色按钮:脚本已禁用,点击启用
使用流程示例
创建和使用脚本的完整流程
-
创建脚本
菜单栏 → 脚本 → 创建脚本... 输入名称:MyRotator 点击确定 -
编辑脚本(外部编辑器)
打开 scripts/MyRotator.py 编辑脚本内容 保存文件(热重载会自动检测) -
挂载脚本到对象
a. 在场景中选择一个对象 b. 右侧脚本管理面板 → 脚本挂载组 c. 选择 MyRotator 脚本 d. 点击"挂载" -
管理脚本状态
在属性面板中: - 查看脚本信息 - 启用/禁用脚本 - 监控脚本运行状态
热重载功能使用
-
启用热重载
菜单栏 → 脚本 → 启用热重载 ✓ -
编辑脚本文件
使用任何文本编辑器修改 scripts/ 目录下的脚本 保存文件 -
自动重载
系统会自动检测文件变化并重新加载脚本 已挂载的脚本会自动更新
快捷操作
键盘快捷键
- 目前没有设置特定的快捷键,主要通过鼠标操作
常用操作流程
- 快速创建脚本:菜单 → 脚本 → 创建脚本...
- 批量重载:菜单 → 脚本 → 重载所有脚本
- 脚本管理:右侧脚本管理面板
- 状态切换:属性面板中的启用/禁用按钮
注意事项
脚本编辑
- 脚本编辑需要使用外部编辑器(如VS Code、PyCharm等)
- 脚本文件保存在
scripts/目录下 - 热重载功能会监控文件变化并自动更新
对象选择
- 脚本挂载需要先选择游戏对象
- 在场景树(左侧面板)中点击对象进行选择
- 选中对象后脚本挂载功能才会启用
错误处理
- 脚本加载错误会显示在控制台
- 创建重复名称的脚本会提示错误
- 挂载/卸载操作会有成功/失败提示
技术特性
性能优化
- 使用 Panda3D 任务系统进行脚本更新
- 热重载使用文件监控,避免频繁检查
- 脚本组件化设计,便于管理
扩展性
- 支持多种脚本模板
- 可扩展的脚本 API
- 模块化的脚本系统架构
故障排除
常见问题
-
脚本创建失败
- 检查脚本名称是否合法
- 确保 scripts/ 目录存在
- 检查文件权限
-
热重载不工作
- 确认热重载已启用
- 检查文件监控服务是否正常
- 重启应用程序
-
脚本挂载失败
- 确认已选择游戏对象
- 检查脚本是否已加载
- 查看控制台错误信息
-
脚本无法运行
- 检查脚本语法错误
- 确认脚本已启用
- 查看脚本系统状态
调试建议
- 使用控制台输出查看详细错误信息
- 检查脚本文件的语法和逻辑
- 确认脚本系统正常运行
- 重载脚本或重启应用来解决问题
总结
脚本管理界面提供了完整的脚本生命周期管理功能,从创建、编辑、加载到挂载和运行,都可以通过直观的图形界面操作。配合热重载功能,可以实现高效的脚本开发工作流。