请执行以下操作,以自定义 AEnewNonNumericMulti.mel,来禁用“添加新项目”按钮等按钮:
修改 AEnewNonNumericMulti.mel(在 runTime/scripts/AETemplates 中),以检查 $nodeName 的类型。例如,如果要在相关节点类型是“fooType”时禁用一个字段,使用以下两个语句中的一个:
int $showField = nodeType( $nodeName ) != "fooType"; int $showField = !`objectType -isa "fooType" $nodeName`;
通过给适当的 UI 控件添加标志 "-m $showField" 来适当设定每个字段的管理状态,以隐藏或显示相应字段(例如,按钮、文本、行布局)。还需要在 AEreplaceNonNumericMulti 中执行类似操作,以在使用该模板加载新节点时启用或禁用同一字段。
某些脚本,如 finalGatherMergeFileUtils.mel,明确源化 AEnewNonNumericMulti.mel,因此无法只源化您自己的脚本版本来覆盖过程 AEnewNonNumericMulti 的定义。如要检查在哪里定义了过程,使用 whatIs。
例如,如果源化自己的 AEnewNonNumericMulti.mel,并输入:
whatIs “AEnewNonNumericMulti”;
Maya 将依据 // Result: Mel procedure found in <somePath>/myAEnewNonNumericMulti.mel // 的各个行返回相应内容
但是,如果随后打开“渲染设置”(Render Settings)窗口,并选择“间接照明”(Indirect Lighting)选项卡,原始 AEnewNonNumericMulti.mel 文件将被源化,并重新定义该过程。如果现在输入:
whatIs “AEnewNonNumericMulti”;
Maya 将依据 // Result: Mel procedure found in <somePath>/runTime/scripts/AETemplates/AEnewNonNumericMulti.mel // 的各个行返回相应内容