mel里面直接使用带参函数是没有问题的,和其他语言一样,
但是用到button的时候就会有奇怪的写法
因为要改写一个mel脚本,所以又继续看了mel的button带参问题
如果是按钮 要有返回值 必须先有括号 里面的除了变量之外的东西必须用引号包围
下面是一个参数的情况
{
window -t "我的测试窗" myTestWin;
columnLayout -adj 1;
int $a = 100;
button -c ("test("+$a+")") ;
proc test(int $b){
print($b);
}
showWindow myTestWin;
}
两个参数情况
{
window -t "我的测试窗" myTestWin;
columnLayout -adj 1; // 主布局
int $a = 100;
int $a2 = 100;
button -c ("test("+$a+","+$a2+")") ;
proc test(int $b,int $c){
print($b);
print($b+$c);
}
showWindow myTestWin;
}
如果参数是字符串又有所不同
可以有下面两种方式(第一种方法用得多 注意test2之后的空格)
{
window -t "我的测试窗" myTestWin;
columnLayout -adj 1;
string $a = "bbb";
button -c ("test2 "+$a) ;
proc test2(string $b){
print($b);
}
showWindow myTestWin;
}
{
window -t "我的测试窗" myTestWin;
columnLayout -adj 1;
string $a = "bbb";
button -c ("test2(\""+$a+"\")") ;
proc test2(string $b){
print($b);
}
showWindow myTestWin;
}
参考地址
https://forum.highend3d.com/t/button-command-with-multiple-arguments/1963
https://forum.highend3d.com/t/passing-arguments-from-buttons/1323/3