关于重命名节点的Maya Python

时间:2017-09-08 13:23:59

标签: python maya

我正在努力加快Maya Python的速度,所以我一直在阅读这本书(http://www.maya-python.com/)这里有一个在线pdf ...我在一个部分(The For Statement)我没有得到正确的结果,但我也没有得到任何错误。如果有人能看到这个并给我一个关于什么导致问题那么好的想法。

因此它可以创建3个文件节点,并且应该将所有3个节点重命名为前缀“dirt_”。但它只重命名'file1'而不是其他两个节点

以下是流程:

#The FOR statement

import maya.cmds;
def process_all_textures(**kwargs):
    pre = kwargs.setdefault('prefix', 'my_');
    textures = kwargs.setdefault('texture_nodes');
    new_texture_names = [];
    for texture in textures:
        new_texture_names.append(
        maya.cmds.rename(
        texture,
        '%s%s'%(pre, texture)
        )
        );
        return new_texture_names;

#create new Maya scene & list 3 file nodes  & print their names

maya.cmds.file(new=True, f=True);
textures = [];
for i in range(3):
    textures.append(
    maya.cmds.shadingNode(
    'file',
    asTexture=True
    )
    );
print(textures);

#pass new texture list to process_all_textures() func and print resulting names

new_textures = process_all_textures(
texture_nodes = textures,
prefix = 'dirt_'
);
print(new_textures);

[u'file1', u'file2', u'file3']
[u'dirt_file1']

1 个答案:

答案 0 :(得分:1)

private void Button_Click_1(object sender, RoutedEventArgs e) { User user = dataGrid.SelectedItem as User; if (user != null) { IList<User> users = dataGrid.ItemsSource as IList<User>; if (users != null) users.Remove(user); dataGrid.ItemsSource = null; dataGrid.ItemsSource = users; } } 必须缩进四个空格(而不是八个空格)。

在您的情况下,return new_texture_names语句会停止该函数并立即返回该值。

return