修复 MEL FOR 循环

Fixing MEL FOR loop

最近几天我一直在为 if 循环做这个。

基本上,这是一个从高度 6 开始并在 FOR 循环内递减的循环,当高度 (y) 达到 1 时,我希望它开始递增 1。

在循环达到 1 的那一刻,高度增加 1,但随后因为它循环回来,所以下一个形状不会再增加 1。

我知道这有点令人困惑,但我希望能得到一些帮助!

谢谢!

int $f = 6; 
for ($e = 24 ; $e <= 31; $e++) 
{
if ($f <= 1) {
string $currentObject = $objects[$e];
select -r $currentObject ;
setAttr ($currentObject+".sy") ($f++); 

}

else {
string $currentObject = $objects[$e];
select -r $currentObject ;
setAttr ($currentObject+".sy") ($f--); 

}
}

如果我对你的问题理解正确,你只想在极端情况下切换递增或递减的方向,而不是在两者之间,i。 e.您需要另一个编码方向的变量(递增或递减)。我在这段代码中调用了 $diff

int $f = 6; 
int $diff = -1;
for ($e = 24 ; $e <= 31; $e++) 
{
  if ($f <= 1) {
    $diff = 1;
  } else if ($f >= 6) {
    $diff = -1;
  }
  string $currentObject = $objects[$e];
  select -r $currentObject ;
  setAttr ($currentObject+".sy") ($f);
  $f = $f + $diff; 
}