最佳实践
以下是一些有助于配置与使用 2D/3D Paint 的建议。
性能优化
如果你的应用遇到性能问题,可以尝试以下方法进行改进:
-
Brush Duplicate Part:当使用
SpriteRenderer与RawImage组件时,用于定义渲染笔刷采样的频率。该值会影响顶点数量以及线条的密度。值越大,绘制的笔刷采样越少,线条细节与密度会降低;值越小,顶点越多,线条更密集。为减少渲染顶点数量,可将该值设置为 24、32 或更高:
-
Raycast Interval:用于定义执行射线检测的频率。值越大,射线检测次数越少,采样密度可能降低;值越小,检测更频繁,线条更密集。若要减少射线检测次数,请提高该值:
-
Smoothing:工具的平滑参数可为 SpriteRenderer 与 RawImage 组件绘制更顺滑的线条。范围为 1 到 10:1 表示关闭平滑,10 为最大平滑。Smoothing 大于 1 时,会渲染更多的笔刷采样,并且绘制可能出现约 2 帧的延迟。要提升性能,可将 Smoothing 降到 2–4,或设置为 1 彻底关闭:
-
Undo/Redo System:可以禁用撤销/重做系统来提升性能:
在 World Space 中绘制
在 World Space 中绘制会使用模型法线来避免在网格背面绘制。如果你的模型没有法线,可以在 Unity 的模型导入设置中选择 Calculate 来生成:
另外,如果你不想依赖网格法线,也可以在 PaintManager 组件中降低 Normal Cutout 值:
用点而不是线来绘制
如果希望用“点”而不是“线”来绘制,请在 PaintManager 组件中关闭 Can Paint Lines:
关闭笔刷圆角
若要关闭笔刷的圆形边缘效果,将笔刷的 Hardness 参数设为 1。
在带透明区域的 Sprite 上绘制
要在包含透明区域的 Sprite 上绘制,请使用带有 XD Paint/Alpha Mask 着色器的材质,并将纹理分别设置为 Main Texture 与 Mask Texture:
然后将 Shader Texture Name 设为 _MainTex:
使用碰撞体进行绘制
若要通过碰撞体实现绘制,请按以下步骤操作:
- 在带有 Rigidbody 组件的 GameObject 上添加
ColliderPainter组件。该设置会基于碰撞事件触发绘制。 - ColliderPainter 组件提供以下关键参数:
- Color - 定义碰撞绘制时使用的颜色。
- Pressure - 调整绘制时施加的压力(会影响笔刷大小)。
- FingerId - 指定用于碰撞绘制的手指索引(对多点触控场景有用)。
这样配置后,当物体之间发生碰撞时就会触发绘制动作。
SkinnedMeshRenderer 建议
如果你使用 Skinned Mesh 进行绘制,建议使用默认 Transform:根动画与网格对象的位置为 0:0:0,旋转为 0:0:0,缩放为 1:1:1:
像素风(Pixel Art)
如果要处理像素风图形,请在 PaintController 与 PaintManager 组件中将 Filter Mode 设为 Point,并在 Settings 中将 BrushDuplicatePartWidth 设为 1:

