切割器(Cutter)
Cutter 组件旨在通过沿指定平面对可移动单元(MU)内的网格进行切片,高效地将 MU 分割成不同的块。此过程将 MU 分为正面和负面,确保所有包含的网格根据平面的方向被精确切割。此功能对于需要动态对象修改的仿真至关重要,例如将对象切割或分割成独立的部分以进行进一步交互。
Cutter 组件在切割操作中提供多样性,允许其分割整个可移动单元(MU)或仅选择性地切割 MU 内由标签指定的特定网格。
此示例演示了使用 Cutter 组件的两种不同切割过程,在两种情况下,每次切割的正面部分都被删除——这是一个可配置选项。在第一次切割期间,整个可移动单元(MU)都受到切割操作。在第二次切割中,过程被优化为仅目标并切割 MU 的外部网格。展示 Cutter 组件功能的 DemoCutter 场景位于演示文件夹中。

前提条件
Cutter 组件需要来自 Unity Asset Store 的 'BzKovSoft.ObjectSlicer' 包。
Mesh slicer on Unity Asset Stroe
确保已安装此包并在项目设置中设置了脚本定义符号 REALVIRTUAL_CUTTER。
提供了一个展示 Cutter 组件功能的演示包。有关更多详细信息和下载包,请参考 Unity Asset Store 上的描述。
属性

使用 Cutter 组件的最简单方法是直接将 Cutter 预制件拖放到您的场景中。此组件执行的所有切割操作都基于平面,该平面根据组件的 Y 方向定向。
设置
- 切割材质(Cut Material):为切割创建的表面分配材质。
- 删除选项(Delete Options):允许删除切割对象的正面或负面。
- 切割后阻止数秒(Block For Seconds After Cut):执行切割后临时禁用切割,以防止快速的连续切割。
- 子网格切割(Submesh Cutting):通过标签仅切割指定的子网格的选项。
信号/IOs
- 开始切割(Start Cut):一个布尔信号,当为 true 时启动切割过程。可以链接到外部 PLC 信号进行自动化。
- 信号切割(Signal Cut):表示启动切割过程的外部触发器。
功能
- 切割过程:
- 组件检测进入其触发区域(由包含的 Box Collider 定义)的碰撞器,识别要切割的对象。
- 当
Start Cut信号激活时,组件根据配置的设置切割检测到的对象。 - 子网格和完整 MU 切割:
- 如果启用了
OnlySubmeshes,则仅切割标记了SubmeshTag的对象部分。请确保为子网格定义标签。 - 如果没有
OnlySubmeshes,触发区域内的整个对象都会被切割。 - 切割后处理:
- 可以基于
DeletePositiveCut和DeleteNegativeCut设置选择性地销毁对象。