当obj改变位置时回调?

时间:2016-05-10 20:32:37

标签: 3dsmax maxscript 3ds

在MaxScript中,如何检测对象是否随事件一起移动?我试过检测变换,但这不起作用:

when transform $Body do (
  print"moved"
)

它也无法冻结ui或程序,因为它必须检测对象何时正在移动。

2 个答案:

答案 0 :(得分:1)

您忘记了changes关键字。正确的语法是

when transform $Body changes do (
    print "moved"
)

答案 1 :(得分:1)

一个已经按键构成的节点不会触发此处理程序,它不是由用户驱动,而是由系统驱动。

当你在轨道栏中按下播放时,这不会触发。

如果不确切知道你打算做什么,很难推荐替代方案。

如果您希望在trackbar / currentTime更改时报告特定节点的位置或转换信息,可以使用registerTimeCallback和unRegisterTimeCallback。

fn reportObject =
(
    print $Box001.pos
)
registerTimeCallback reportObject

当使用播放按钮或擦洗时间条时,将触发此操作。阅读有关timecallbacks的文档,因为它们具有特定的规则。

希望这有帮助。