63 lines
2.3 KiB
Markdown
63 lines
2.3 KiB
Markdown
# Free vs Pro 划分与发布规则
|
||
|
||
本文用于固化 EasyChart 的 Free/Pro 划分口径、工程结构与发布导出规则,防止后续开发过程出现边界漂移。
|
||
|
||
## 1. 总体策略(结论)
|
||
|
||
- 两个独立包:Free 包 / Pro 包
|
||
- Pro 包包含 Free 全量(Pro 为 superset)
|
||
- Free 遇到 Pro-only 资产/配置:允许直接报错(不做降级兼容)
|
||
|
||
## 2. 功能边界(Scheme 2)
|
||
|
||
### 2.1 Free 包必须包含
|
||
|
||
- 基础 2D 图表类型与常用工作流(运行时可用 + 编辑器可配置/预览)
|
||
- `EasyChartLibraryWindow`(LibraryWindow)
|
||
- 运行时数据注入能力(例如 `ChartFeed` / `ApplyJson`)
|
||
|
||
### 2.2 Pro 包增量方向(优先级)
|
||
|
||
- A:新增图表类型
|
||
- Gauge / Funnel / BoxPlot / Candlestick(K线) / Treemap / Sunburst 等
|
||
- B:3D 图表
|
||
- 3D Bar / 3D Scatter / 3D Surface 等
|
||
- C:2D 高级视觉效果
|
||
- 贴图 UV 动画、特效类渲染能力等
|
||
|
||
### 2.3 2D 高级效果具体划分
|
||
|
||
- Free:Bar 头部圆角、hover 效果
|
||
- Pro:贴图 UV 动画(以及后续更复杂的材质/特效能力)
|
||
|
||
## 3. 工程结构(asmdef / 目录)
|
||
|
||
当前工程采用 asmdef 拆分,保证 Free 不依赖 Pro,便于导出两个包。
|
||
|
||
- `Assets/EasyChart/Scripts/Runtime/` -> `EasyChart.Runtime`
|
||
- `Assets/EasyChart/Scripts/Editor/` -> `EasyChart.Editor`(Editor-only,引用 `EasyChart.Runtime`)
|
||
- `Assets/EasyChart/EasyChartPro/Scripts/Runtime/` -> `EasyChart.Pro.Runtime`(引用 `EasyChart.Runtime`)
|
||
- `Assets/EasyChart/EasyChartPro/Scripts/Editor/` -> `EasyChart.Pro.Editor`(Editor-only,引用 `EasyChart.Editor` + `EasyChart.Pro.Runtime`)
|
||
|
||
约束:
|
||
|
||
- Pro-only 代码必须放在 `EasyChartPro/**` 下。
|
||
- Free 的 asmdef 不得引用任何 `EasyChart.Pro.*` asmdef。
|
||
|
||
## 4. 发布/导出规则
|
||
|
||
### 4.1 Free 包
|
||
|
||
- 导出包含:`Assets/EasyChart/**`
|
||
- 导出排除:`Assets/EasyChart/EasyChartPro/**`(以及未来所有 `*Pro` 资源目录,例如 `TexturesPro/**`, `ShadersPro/**`, `DemoPro/**`)
|
||
|
||
### 4.2 Pro 包
|
||
|
||
- 全量导出 `Assets/EasyChart/**`(包含 `Scripts` + `EasyChartPro`)
|
||
|
||
## 5. 报错策略(Free 遇到 Pro-only)
|
||
|
||
- 允许直接报错,但要求错误信息可定位:
|
||
- 运行时:明确 `Debug.LogError` 指出需要 Pro
|
||
- 编辑器:避免空引用,尽量显示可读提示
|