Loops 如何在mel中创建可中断循环

Loops 如何在mel中创建可中断循环,loops,mel,Loops,Mel,是否有一种方法可以在MEL(Maya嵌入式语言)中中断或取消循环?您可以使用中断指令。例如: string $joints[] = {"joint1","joint2","joint3","joint4","joint5","joint6"}; for ($i = 0; $i < size($joints); $i++) { if ($i > 3){ break; } print $joints[$i]; } string$joints[]=

是否有一种方法可以在MEL(Maya嵌入式语言)中中断或取消循环?

您可以使用
中断
指令。例如:

string $joints[] = {"joint1","joint2","joint3","joint4","joint5","joint6"};
for ($i = 0; $i < size($joints); $i++) {
    if ($i > 3){
        break;
    }
    print $joints[$i];
}
string$joints[]={“joint1”、“joint2”、“joint3”、“joint4”、“joint5”、“joint6”};
对于($i=0;$i3){
打破
}
打印$joints[$i];
}

将仅打印前4个元素:joint1 joint2 joint3 joint4

您可以使用
break
指令。例如:

string $joints[] = {"joint1","joint2","joint3","joint4","joint5","joint6"};
for ($i = 0; $i < size($joints); $i++) {
    if ($i > 3){
        break;
    }
    print $joints[$i];
}
string$joints[]={“joint1”、“joint2”、“joint3”、“joint4”、“joint5”、“joint6”};
对于($i=0;$i3){
打破
}
打印$joints[$i];
}

将只打印前4个元素:joint1 joint2 joint3 joint4

您应该使用进度条。直接来自手册的示例:

{
    global string $gMainProgressBar;  // This is defined on maya startup

    progressBar -edit
        -beginProgress
        -isInterruptable true
        -status "Example Calculation ..."
        -maxValue 5000
        $gMainProgressBar;

    int $i;
    for($i=0; $i < 5000; $i++) {
        if(`progressBar -query -isCancelled $gMainProgressBar`)
            break;

        progressBar -edit
            -step 1 $gMainProgressBar; 
    }

    progressBar -edit
        -endProgress
        $gMainProgressBar;
}
{
全局字符串$gMainProgressBar;//这是在maya启动时定义的
进度条-编辑
-开始进展
-可中断的真实
-状态“示例计算…”
-最大值5000
$gMainProgressBar;
新台币一元;
对于($i=0;$i<5000;$i++){
if(`progressBar-query-isCancelled$gMainProgressBar`)
打破
进度条-编辑
-步骤1$gMainProgressBar;
}
进度条-编辑
-终点
$gMainProgressBar;
}

Maya现在显示进度,并允许您使用esc中断。

您应该使用进度条。直接来自手册的示例:

{
    global string $gMainProgressBar;  // This is defined on maya startup

    progressBar -edit
        -beginProgress
        -isInterruptable true
        -status "Example Calculation ..."
        -maxValue 5000
        $gMainProgressBar;

    int $i;
    for($i=0; $i < 5000; $i++) {
        if(`progressBar -query -isCancelled $gMainProgressBar`)
            break;

        progressBar -edit
            -step 1 $gMainProgressBar; 
    }

    progressBar -edit
        -endProgress
        $gMainProgressBar;
}
{
全局字符串$gMainProgressBar;//这是在maya启动时定义的
进度条-编辑
-开始进展
-可中断的真实
-状态“示例计算…”
-最大值5000
$gMainProgressBar;
新台币一元;
对于($i=0;$i<5000;$i++){
if(`progressBar-query-isCancelled$gMainProgressBar`)
打破
进度条-编辑
-步骤1$gMainProgressBar;
}
进度条-编辑
-终点
$gMainProgressBar;
}

Maya现在显示进度,并允许您使用esc中断。

通过条件中断循环总是很容易的。我想在循环开始后逃离循环。这是因为循环应该通过考虑所有元素来启动和完成,在这个过程中,如果用户希望停止循环,它应该能够这样做。希望我能把我的观点说清楚。通过一个条件打破循环总是很容易的。我想在循环开始后逃离循环。这是因为循环应该通过考虑所有元素来启动和完成,在这个过程中,如果用户希望停止循环,它应该能够这样做。希望我能把我的观点讲清楚。