2.3 KiB
2.3 KiB
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.RuntimeAssets/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 - 编辑器:避免空引用,尽量显示可读提示
- 运行时:明确