微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

修复 MEL FOR 循环

如何解决修复 MEL FOR 循环

最近几天我一直在为 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; 
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。