0

我的 MaxScript 工具要求场景对象的类型为 editable_mesh 或 editable_poly,并根据对象类型启用和禁用 GUI 控件。

当用户更改所选对象时,使用#selectionSetChanged回调我可以成功更新我的推出更新,但如果他们转换一个对象,他们将被迫取消选择它并再次选择它以对其进行操作。

我应该为 callbacks.addscript 提供什么回调类型名称,以便在用户更改/转换对象的类型/类时调用它?

4

2 回答 2

1

通过调用 NodeEventCallback使用节点事件系统modelstructured并将我的函数提供给属性。

这会在标准事件回调系统上运行一个层,并具有许多新事件,但它仅适用于 3ds Max 2009 及更高版本。

于 2011-06-08T16:18:22.983 回答
0

我知道没有这样的回调事件,甚至没有一个 when 构造在这里工作。实现这一点的一种方法是在推出时使用计时器,并在每次滴答时检查所选对象的类/超类,但我不确定它实际上是否首先需要。

如果您想警告用户该对象需要转换,有很多方法可以在他的合作下完成,例如在选择时弹出一个查询框,上面会说“单击的对象不是可编辑网格。将其转换为一?” 或带有选项的自定义查询框Convert to Editable Poly/Convert to Editable Mesh/Discard

或者甚至是老式的方式,默认情况下禁用所有有问题的控件,只启用一个大的 Pick Node 拾取按钮。那将提供一个过滤器功能,只允许您选择可编辑的节点。

于 2011-06-05T23:34:30.080 回答