[docs][refactor]: 将旧 01~06 中文教程合并整理为 modules/frameworks 文件夹结构
- 删除 01~05 旧中文教程目录 - 将 03 核心功能教程拆分为各 framework 模块的子文档 - 06 工具脚本移入 modules/frameworks/编辑器工具/UI工具/ - 非框架内容合并进 rules/20-开发规则.md 与 rules/40-工作流清单.md - 更新所有交叉链接与文档关联表 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
122
modules/frameworks/相机系统/README.md
Normal file
122
modules/frameworks/相机系统/README.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# 相机系统
|
||||
|
||||
## 分类
|
||||
|
||||
- 核心框架
|
||||
|
||||
## 目的
|
||||
|
||||
管理多相机注册、相机堆栈排序、渲染顺序控制,为 UI、场景、特效等提供分层渲染能力。
|
||||
|
||||
---
|
||||
|
||||
## 核心类
|
||||
|
||||
| 类 | 职责 |
|
||||
|---|---|
|
||||
| `HFCameraManager` | 相机管理器单例,维护相机列表和主相机引用 |
|
||||
| `HFMainCamera` | 主相机,管理 CameraStack |
|
||||
| `AbsHFCameraItem` | 相机项抽象基类,子类实现具体相机逻辑 |
|
||||
|
||||
---
|
||||
|
||||
## 创建自定义相机
|
||||
|
||||
继承 `AbsHFCameraItem`,实现 `CameraItem` 和 `Weight` 属性:
|
||||
|
||||
```csharp
|
||||
public class UIOverlayCamera : AbsHFCameraItem
|
||||
{
|
||||
[SerializeField] private Camera uiCamera;
|
||||
[SerializeField] private int weight = 10;
|
||||
|
||||
public override Camera CameraItem => uiCamera;
|
||||
public override int Weight => weight;
|
||||
|
||||
protected override void OnInitialize()
|
||||
{
|
||||
base.OnInitialize();
|
||||
uiCamera.clearFlags = CameraClearFlags.Depth;
|
||||
uiCamera.depth = 100;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 相机堆栈架构
|
||||
|
||||
```text
|
||||
HFMainCamera (主相机)
|
||||
│
|
||||
├── CameraStack (相机堆栈)
|
||||
│ ├── CameraItem1 (Weight=10)
|
||||
│ ├── CameraItem2 (Weight=20)
|
||||
│ └── CameraItem3 (Weight=5)
|
||||
│
|
||||
└── 按 Weight 排序 → 渲染顺序控制
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 管理相机
|
||||
|
||||
```csharp
|
||||
public class CameraController : MonoBehaviour
|
||||
{
|
||||
void Start()
|
||||
{
|
||||
HFCameraManager cameraMgr = HFCameraManager.Instance;
|
||||
|
||||
UIOverlayCamera uiCamera = GetComponent<UIOverlayCamera>();
|
||||
cameraMgr.AddCamera(uiCamera);
|
||||
|
||||
Camera mainCam = cameraMgr.mainCamera.MainCamera;
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
UIOverlayCamera uiCamera = GetComponent<UIOverlayCamera>();
|
||||
HFCameraManager.Instance.RemoveCamera(uiCamera);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常用 API
|
||||
|
||||
| 方法 | 说明 |
|
||||
|-----|------|
|
||||
| `AddCamera(AbsHFCameraItem)` | 添加相机到堆栈 |
|
||||
| `RemoveCamera(AbsHFCameraItem)` | 从堆栈移除相机 |
|
||||
| `GetCamera(string cameraName)` | 获取指定名称相机 |
|
||||
|
||||
---
|
||||
|
||||
## 使用规则
|
||||
|
||||
- 相机项必须继承 `AbsHFCameraItem`。
|
||||
- `Weight` 决定堆栈内渲染顺序,值越大越靠后渲染。
|
||||
- 添加和移除相机需成对出现,避免残留。
|
||||
- UI 相机通常使用 `CameraClearFlags.Depth` 和较高 depth。
|
||||
|
||||
---
|
||||
|
||||
## 相关模块
|
||||
|
||||
- [UI 窗口系统](../UI窗口系统/README.md)
|
||||
- [资源管理](../资源管理/README.md)
|
||||
|
||||
---
|
||||
|
||||
## 文档关联
|
||||
|
||||
> 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
|
||||
|
||||
| 文档 | 关联原因 |
|
||||
|---|---|
|
||||
| [modules/模块索引.md](../../模块索引.md) | 模块索引是项目知识总入口 |
|
||||
| [modules/frameworks/UI窗口系统/README.md](../UI窗口系统/README.md) | UI 窗口系统常与相机系统协作 |
|
||||
| [rules/10-架构说明.md](../../../rules/10-架构说明.md) | 架构说明定义总体分层和依赖方向 |
|
||||
| [rules/30-模块登记规则.md](../../../rules/30-模块登记规则.md) | 模块登记规则定义分类和状态口径 |
|
||||
101
modules/frameworks/相机系统/使用指南.md
Normal file
101
modules/frameworks/相机系统/使用指南.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 相机系统使用指南
|
||||
|
||||
## 一、创建自定义相机
|
||||
|
||||
### 1.1 继承 AbsHFCameraItem
|
||||
|
||||
```csharp
|
||||
public class UIOverlayCamera : AbsHFCameraItem
|
||||
{
|
||||
[SerializeField] private Camera uiCamera;
|
||||
[SerializeField] private int weight = 10;
|
||||
|
||||
public override Camera CameraItem => uiCamera;
|
||||
public override int Weight => weight;
|
||||
|
||||
protected override void OnInitialize()
|
||||
{
|
||||
base.OnInitialize();
|
||||
// 自定义初始化逻辑
|
||||
uiCamera.clearFlags = CameraClearFlags.Depth;
|
||||
uiCamera.depth = 100;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、管理相机堆栈
|
||||
|
||||
### 2.1 使用相机管理器
|
||||
|
||||
```csharp
|
||||
public class CameraController : MonoBehaviour
|
||||
{
|
||||
void Start()
|
||||
{
|
||||
// 获取相机管理器
|
||||
HFCameraManager cameraMgr = HFCameraManager.Instance;
|
||||
|
||||
// 添加自定义相机
|
||||
UIOverlayCamera uiCamera = GetComponent<UIOverlayCamera>();
|
||||
cameraMgr.AddCamera(uiCamera);
|
||||
|
||||
// 获取主相机
|
||||
Camera mainCam = cameraMgr.mainCamera.MainCamera;
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
UIOverlayCamera uiCamera = GetComponent<UIOverlayCamera>();
|
||||
HFCameraManager.Instance.RemoveCamera(uiCamera);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.2 相机堆栈架构
|
||||
|
||||
```
|
||||
相机层级架构:
|
||||
HFMainCamera (主相机)
|
||||
│
|
||||
├── CameraStack (相机堆栈)
|
||||
│ ├── CameraItem1 (Weight=10)
|
||||
│ ├── CameraItem2 (Weight=20)
|
||||
│ └── CameraItem3 (Weight=5)
|
||||
│
|
||||
└── 按 Weight 排序 → 渲染顺序控制
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、相机管理 API
|
||||
|
||||
### 3.1 常用方法
|
||||
|
||||
| 方法 | 说明 |
|
||||
|-----|------|
|
||||
| `AddCamera()` | 添加相机到堆栈 |
|
||||
| `RemoveCamera()` | 从堆栈移除相机 |
|
||||
| `GetCamera()` | 获取指定相机 |
|
||||
|
||||
---
|
||||
|
||||
**版本**: v1.0
|
||||
**生效日期**: 2026年
|
||||
**适用范围**: GiftGameX 项目业务开发人员
|
||||
|
||||
---
|
||||
|
||||
## 文档关联
|
||||
|
||||
> 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
|
||||
|
||||
| 文档 | 关联原因 |
|
||||
|---|---|
|
||||
| [相机系统入口](README.md) | 本文件是相机系统模块的子文档 |
|
||||
| [UI 窗口系统](../UI窗口系统/README.md) | UI 窗口系统常与相机系统协作 |
|
||||
| [资源管理](../资源管理/README.md) | 相机资源加载依赖资源管理 |
|
||||
| [modules/模块索引.md](../../模块索引.md) | 模块索引是项目知识总入口 |
|
||||
| [rules/10-架构说明.md](../../../rules/10-架构说明.md) | 架构说明定义总体分层和依赖方向 |
|
||||
| [rules/30-模块登记规则.md](../../../rules/30-模块登记规则.md) | 模块登记规则定义分类和状态口径 |
|
||||
Reference in New Issue
Block a user