将对象作为参数传递给 MEL 中的全局过程

问题描述 投票:0回答:1

是否可以将位于场景中的对象(网格/变换)作为参数传递给 Maya 表达式编辑器 (MEL) 中的全局过程?

例如:

global proc int foo( ??? $object_ ) // what's the type of the parameter?
{
    float $vtx[] = `pointPosition -w object_.vtx[0]`;
    ...
}

foo( pCube1 );

我现在能想到的唯一方法是将对象的名称作为字符串传递,然后使用 if-else 语句或 switch 语句来确定函数体内的对象。例如:

global proc int foo( string $object_name_ )
{
   if ($object_name_ == "pCube1")
   {
       float $vtx[] = `pointPosition -w pCube1.vtx[0]`;
       ...
   }
   else if ($object_name_ == "pCube2")
   {
       float $vtx[] = `pointPosition -w pCube2.vtx[0]`;
       ...
   }
   else
   {
      ...
   }
}
    
foo( "pCube1" );
maya mel
1个回答
0
投票

不幸的是 mel 只使用字符串,而不使用对象。即使表达式语言看起来好像您可以做到这一点,它也不使用对象,而仅使用直接对象在表达式内创建连接。

© www.soinside.com 2019 - 2024. All rights reserved.