мой предыдущий ответ был неверным.
, поэтому для передачи массива в процесс нужно переопределить его как глобальную переменную,
string $selectedFace[];
станет
global string $selectedFace[];
внутри процедуры. e.g.:
string $selectedFace[] = filterExpand("-sm", 34, `ls-selection`);
global proc crTestScripts(){
global string $selectedFace[];
print $selectedFace;
}
crTestScripts();
// result: body_skinPrx_finalSkin.f[103]
filterExpand дает два преимущества: он выравнивает массив ls -fl
, и вы можете использовать несколько фильтров -sm 34 -sm 31
или, я думаю, лучший способ ... (мне не нравятся глобальные переменные)
просто используйте обычный синтаксис объявления переменных для аргументов в круглых скобках:
global proc proc_name (* args_here) {somecode; вернуть; }
* арг:
строка $ str, строка $ ls_str [], число с плавающей точкой $ scaleX, число с плавающей точкой $ scale []; .. вектор $ vec и т. Д.
global proc hide_items(string $items[]){
hide $items;
}
с использованием предыдущего результата списка $selectedFace
:
hide_items($selectedFace);
упс ... я забыл, майя не может скрывать лица xD