public static ShapeData GetMaterialsOfDag(MDagPath dag) { if (dag == null) { Debug.Log("dag null"); } dag.extendToShape(); MFnDependencyNode dn = new MFnDependencyNode(dag.node); //Debug.Log(dn.absoluteName); //dn.findPlug("connectAttr pCubeShape3.instObjGroups[0] blinn2SG.dagSetMembers[1]"); MFnMesh mesh = new MFnMesh(dag); //int instanceCount = (int)shapeNode.instanceCount(false); //Debug.Log("dn instanceCount:" + instanceCount); uint instanceNumber = dag.instanceNumber; Debug.Log("dag instanceNumber:" + instanceNumber); MObjectArray sets = new MObjectArray(), comps = new MObjectArray(); mesh.getConnectedSetsAndMembers(instanceNumber, sets, comps, true); List <string> sgList = new List <string>(); for (int i = 0; i < sets.length; ++i) { MFnDependencyNode fnDepSGNode = new MFnDependencyNode(sets[i]); sgList.Add(fnDepSGNode.absoluteName); //Debug.Log(fnDepSGNode.name); } //Debug.Log("sgList Count:" + sgList.Count); return(new ShapeData(mesh, dag, sgList)); }