### 报错代码
if ".obj" in file_dir:
bpy.ops.import_scene.obj(filepath=file_dir)
ob = bpy.context.selected_objects[0]
if len(ob.data.materials) == 0:
mat_name = "Material"
mat = bpy.data.materials.new(name=mat_name)
ob.data.materials.append(mat)
mat = ob.data.materials[0]
slot = mat.texture_slots.add()
这是因为在较新的Blender版本中,材质的纹理槽已被弃用。
取而代之的是使用节点编辑器来创建和管理材质纹理。
### 解决
if ".obj" in file_dir:
bpy.ops.import_scene.obj(filepath=file_dir)
ob = bpy.context.selected_objects[0]
if len(ob.data.materials) == 0:
mat_name = "Material"
mat = bpy.data.materials.new(name=mat_name)
ob.data.materials.append(mat)
mat = ob.data.materials[0]
# 创建纹理节点
tex_node = mat.node_tree.nodes.new('ShaderNodeTexImage')
# 创建输出节点
output_node = mat.node_tree.nodes.new('ShaderNodeOutputMaterial')
# 连接节点
mat.node_tree.links.new(tex_node.outputs['Color'],