private void RefreshDeformer() { Initialize(); if (FilePath != "") { Mesh_Binder = SS_File.GetFile_ByteObject <MeshBinder>(Application.streamingAssetsPath + FilePath); } Deformer(); }
/// <summary> /// 绑定方法 /// </summary> private void Bind() { Mesh_Binder = new MeshBinder(); for (int i = 0; i < mesh.vertices.Length; i++)//遍历mesh全点 { ShortDistance = Mathf.Infinity; for (int i1 = 0; i1 < mesh_Skeleton.Pionts.Count; i1++)//遍历骨架线节点 { Vector3 Offset = (mesh_Skeleton.Pionts[i1].SE_World_To_local(transform.SE_Local_To_World(mesh.vertices[i]))); if (Offset.magnitude < ShortDistance)//取最近骨架节点 { ShortDistance = Offset.magnitude; OffsetSave = Offset; index = i1; } } if (Mesh_Binder.MeshBind.ContainsKey(index.ToString()))//骨架编号与mesh节点编号绑定 { Mesh_Binder.MeshBind[index.ToString()].Add(i.ToString(), OffsetSave); } else { Mesh_Binder.MeshBind.Add(index.ToString(), new Dictionary <string, SF_Vector3>()); Mesh_Binder.MeshBind[index.ToString()].Add(i.ToString(), OffsetSave); } index = 0; } string path = Application.streamingAssetsPath + FilePath; SS_File.SetFile_byteObject(Mesh_Binder, path);//绑定过程太慢所以需要存档 }