void FbxsdkBuildHierachy(FBXNode fbxNode, SkeletonNode parentNode, Dictionary<SkeletonNode, FBXMesh> outputMeshDict) { var node = new SkeletonNode(); node.Name = fbxNode.GetName(); node.PoseMatrix = FbxsdkConvertMatrix(fbxNode.GetLocalTransform()); node.Parent = parentNode; if (parentNode == null) skeleton = node; else parentNode.Children.Add(node); var mesh = fbxNode.GetMesh() ; if(mesh != null) { outputMeshDict[node] = mesh; } if (skeletonNodeDict.ContainsKey(node.Name)) { Debug.Log("Found duplicated skeleton node name: " + node.Name); } else { skeletonNodeDict.Add(node.Name, node); } for (int i = 0; i < fbxNode.GetChildCount(); ++i) { FbxsdkBuildHierachy(fbxNode.GetChild(i), node, outputMeshDict); } }