EG/README.md
Rowland 72819341ef docs(README): 添加项目README文档
- 创建详细的README文档,介绍项目功能、架构、使用方法等
- 新增.pyc文件和目录,用于缓存编译后的Python代码
- 添加.lingma规则文件,用于代码格式检查
- 删除ALVR串流处理器代码,准备替换为OpenXR输入处理器
- 新增OpenXR输入处理器代码,处理VR控制器输入
2025-07-29 17:46:08 +08:00

151 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# EG - 3D编辑器与游戏引擎
EG是一个功能强大的3D编辑器和游戏引擎基于Panda3D和PyQt5构建提供直观的可视化编辑功能和VR支持。该引擎适用于游戏开发、3D可视化和交互式应用程序创建。
## 功能特性
### 核心功能
- **3D场景编辑与管理**:完整的场景编辑工具集
- **模型导入与处理**支持多种3D模型格式导入
- **材质系统**:高级材质编辑和管理
- **光照系统**:环境光、定向光、聚光灯和点光源
- **相机控制系统**:灵活的相机操作和视角控制
- **场景保存与加载**BAM格式场景保存和恢复
### 编辑器功能
- **对象选择与变换**:精确的对象选择和变换工具
- **坐标轴拖拽控制**直观的3D变换控制
- **属性面板编辑**:实时编辑对象属性
- **场景树管理**:层次化场景结构管理
- **材质编辑器**:可视化材质编辑
- **日夜循环系统**:动态光照和环境变化
### GUI系统
- **2D GUI元素**:按钮、标签、输入框、滑块等
- **3D空间GUI**3D文本和虚拟屏幕
- **GUI编辑模式**可视化GUI布局编辑
- **事件处理系统**GUI交互事件响应
### VR支持
- **VR系统集成**完整的VR环境支持
- **VR控制器输入处理**:精确的控制器输入识别
- **ALVR串流支持**无线VR体验
- **触觉反馈**:增强沉浸感的触觉反馈
- **VR手势识别**:自然的手势交互
### 脚本系统
- **Python脚本热重载**:实时脚本更新无需重启
- **脚本模板创建**:快速创建新脚本
- **对象脚本管理**:为游戏对象添加行为脚本
- **脚本调试支持**:内置调试功能
### 项目管理
- **项目创建与保存**:完整的项目管理功能
- **资源管理**:统一的资源导入和管理
- **项目打包**:一键打包发布项目
## 系统架构
### 核心模块
- `core/world.py` - 核心世界管理,集成所有子系统
- `core/event_handler.py` - 输入事件处理系统
- `core/selection.py` - 对象选择和变换系统
- `core/tool_manager.py` - 编辑工具管理
- `core/script_system.py` - Python脚本系统
- `core/vr_manager.py` - VR系统管理
- `core/vr_input_handler.py` - VR输入处理
- `core/alvr_streamer.py` - ALVR串流支持
### 子系统
- `scene/scene_manager.py` - 场景管理系统
- `gui/gui_manager.py` - GUI系统管理
- `ui/` - 用户界面组件
- `ui/main_window.py` - 主窗口设置
- `ui/property_panel.py` - 属性面板
- `ui/widgets.py` - 自定义UI组件
- `ui/interface_manager.py` - 界面管理
- `project/project_manager.py` - 项目管理系统
## 快速开始
### 系统要求
- Python 3.7+
- Panda3D
- PyQt5
- 支持OpenGL的显卡
### 依赖安装
```bash
pip install -r requirements.txt
```
### 运行编辑器
```bash
python main.py
```
### 基本操作
- **鼠标左键**:选择对象
- **鼠标右键**:旋转视角
- **鼠标中键**:平移视角
- **滚轮**:缩放视角
- **WASD**:在场景中移动
- **数字键1-0**:切换不同时间点
- **F键**:聚焦选中对象
- **Delete键**:删除选中对象
## 编辑器使用指南
### 导入模型
1. 点击"文件" > "导入模型"
2. 选择支持的3D模型文件
3. 调整模型位置和属性
### 场景编辑
1. 使用选择工具选中对象
2. 通过属性面板修改对象属性
3. 使用变换工具(移动、旋转、缩放)调整对象
### GUI创建
1. 进入GUI编辑模式
2. 选择GUI元素类型
3. 点击场景放置GUI元素
4. 通过属性面板调整GUI属性
### VR模式
1. 连接VR设备
2. 点击"VR" > "启用VR模式"
3. 使用VR控制器进行交互
### 脚本编辑
1. 点击"脚本" > "创建新脚本"
2. 编写Python脚本代码
3. 将脚本附加到场景对象
## 开发指南
### 架构概述
EG采用模块化设计核心功能通过`MyWorld`类集成各个子系统。所有子系统都通过代理方法暴露功能使API保持一致性。
### 添加新功能
1. 在相应目录下创建新模块
2. 在`MyWorld`类中添加代理方法
3. 通过子系统管理器集成功能
### 扩展VR功能
1. 修改`vr_manager.py`添加新功能
2. 更新`vr_input_handler.py`处理新输入
3. 在`alvr_streamer.py`中添加串流支持
### 创建自定义工具
1. 在`tool_manager.py`中添加新工具类型
2. 实现工具的交互逻辑
3. 在UI中添加工具选择按钮
## 贡献
欢迎提交Pull Request或Issue报告问题。贡献前请先查看贡献指南。
## 许可证
MIT License