代码之家  ›  专栏  ›  技术社区  ›  123iamking

使用脚本切换Maya中选定对象的X射线

  •  0
  • 123iamking  · 技术社区  · 8 年前

    我不熟悉mel脚本。我知道我可以用代码手动切换X射线。

    displaySurface -xRay true; //Xray on
    displaySurface -xRay false; //Xray off
    

    但我想让它自动切换,比如

    if(xRay on)
     set xRay off
    else
     set xRay on
    

    我知道我可以用命令打开或关闭X射线

    displaySurface -query -xRay;
    

    但我不能把这个命令 if block . 我尝试了很多类似下面的代码的东西,但都不管用。

    if(`displaySurface -query -xRay` == 1) // Error: line 1: Cannot use data of type int[] in a scalar operation. // 
    print("To be or not to be");
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   sfillat    8 年前

    看起来像 displaySurface -query -xRay 正在返回数组。这对我很有用:

    int $y[] = `displaySurface -query -xRay`;
    
    if( $y[0] == 1) 
    print("To be or not to be");
    
        2
  •  0
  •   Morten    8 年前

    后面的括号 int 在错误中 Cannot use data of type int[] 指示函数返回整数数组。所以你需要考虑第一个元素 [0] 阵列的。

    $xRayOnArray = `displaySurface -q -xRay`;
    if ($xRayOnArray[0] == 0) {
        print("X-Ray is enabled");
    } else {
        print("X-Ray is disabled");
    }
    

    它为什么返回数组是一个谜。它没有文档记录,该函数一次只能查询单个对象。