Files

2.3 KiB
Raw Permalink Blame History

Free vs Pro 划分与发布规则

本文用于固化 EasyChart 的 Free/Pro 划分口径、工程结构与发布导出规则,防止后续开发过程出现边界漂移。

1. 总体策略(结论)

  • 两个独立包:Free 包 / Pro 包
  • Pro 包包含 Free 全量(Pro 为 superset
  • Free 遇到 Pro-only 资产/配置:允许直接报错(不做降级兼容)

2. 功能边界(Scheme 2

2.1 Free 包必须包含

  • 基础 2D 图表类型与常用工作流(运行时可用 + 编辑器可配置/预览)
  • EasyChartLibraryWindowLibraryWindow
  • 运行时数据注入能力(例如 ChartFeed / ApplyJson

2.2 Pro 包增量方向(优先级)

  • A:新增图表类型
    • Gauge / Funnel / BoxPlot / Candlestick(K线) / Treemap / Sunburst 等
  • B3D 图表
    • 3D Bar / 3D Scatter / 3D Surface 等
  • C2D 高级视觉效果
    • 贴图 UV 动画、特效类渲染能力等

2.3 2D 高级效果具体划分

  • FreeBar 头部圆角、hover 效果
  • Pro:贴图 UV 动画(以及后续更复杂的材质/特效能力)

3. 工程结构(asmdef / 目录)

当前工程采用 asmdef 拆分,保证 Free 不依赖 Pro,便于导出两个包。

  • Assets/EasyChart/Scripts/Runtime/ -> EasyChart.Runtime
  • Assets/EasyChart/Scripts/Editor/ -> EasyChart.EditorEditor-only,引用 EasyChart.Runtime
  • Assets/EasyChart/EasyChartPro/Scripts/Runtime/ -> EasyChart.Pro.Runtime(引用 EasyChart.Runtime
  • Assets/EasyChart/EasyChartPro/Scripts/Editor/ -> EasyChart.Pro.EditorEditor-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
    • 编辑器:避免空引用,尽量显示可读提示