问题描述
将 Maya MEL 文件拖放到 Maya 中,MEL 文件的内容将被执行。 拖拽时有没有办法获取文件的绝对路径?
解决方法
希望这能让你开始
test.mel:
global proc FindMe() {}
print("whatIs result -> " + `whatIs "FindMe"`);
将文件拖放到 Maya 中会产生以下输出:
> source "C:/Users/itypewithmyhands/Desktop/test.mel";
> whatIs result -> Mel procedure found in: C:/Users/itypewithmyhands/Desktop/test.mel
需要注意的有趣点:
- 拖放似乎只是生成一个
source <file>
语句,这意味着您必须执行一些我不知道的内部魔术才能知道该文件是实际被删除还是只是来源 - 您搜索的
proc
必须标记为全局
您需要对 whatIs
命令的结果进行正则表达式(或类似的处理)才能获得您想要的路径。像 .*found in: (.+?\.mel)
这样的东西似乎工作得很好。 Example