Mel调用程序
/ / 点击 / 阅读耗时 4 分钟全局程序
一旦定义了全局程序,您可以在任意位置调用它:从任意脚本文件、在任意函数中、或从命令行
1 | global proc return_type procedure_name( arguments ) |
- global 关键字使新程序在任意位置可用。
- proc 关键字指示您正在定义程序。
- 可以在 proc 后为程序的返回类型添加关键字。例如,如果程序返回一个整数,请键入 int。如果程序不返回值,可以忽略。
- 程序的名称。
- 参数列表,包括在括号内,且之间用逗号分隔。每个参数都是一个前面带有其类型(例如 string)的变量名(以 $ 开头)。
- 要在调用程序时执行的代码块。
如果没有为程序指定返回类型(指示该程序将不会返回值),则您只能指定 return 运算符,而不返回值。在该上下文中使用的 return 运算符相当于函数中断符。
1 | global proc add5(int $x) {return $x+5;}; |
示例
1 | global proc string sayHi() { |
如果在程序声明的开头不使用 global 关键字,则该程序对于在其中定义它的文件是局部的
1 | // 仅对此文件中的代码可见。 |
调用程序
调用两种方式
1 | helloValue( 1, "Jake" ); |
1 | helloValue 7 "Torq"; |
外部程序
如果 Maya 遇到没有定义的命令,则将搜索与该命令相同的 MEL 脚本的脚本路径(在文件名中去掉 .mel 扩展名)。
如果找到该文件,将在该文件内声明所有的全局 MEL 程序,如果该文件内存在已调用的程序,则执行此程序。
例如,用户在其中某个脚本文件夹中含有文件 sayWhat.mel,该文件内容如下:
1 | proc red5() {print("red5 standing by...\n");} |
调用函数 sayWhat
- 由于没有内部命令 sayWhat,Maya 将搜索文件名为 sayWhat 或 sayWhat.mel 的文件的所有脚本路径。
- 如果在其中某个脚本目录中找到文件 sayWhat.mel 脚本,Maya 将检查文件中是否存在尝试调用的程序。如果有,Maya 将调用该程序。在本示例中,文件中已存在 sayWhat 的程序,因此可以执行