// Use this for initialization void Start() { BinaryReader reader = new BinaryReader(new MemoryStream(SKN.bytes)); data = new SknData(reader); var m = new Mesh(); m.SetVertices(data.Vertexes.Select(x => x.Vertex).ToList()); m.SetIndices(data.Indexes.Select(x => (int)x).ToArray(), MeshTopology.Triangles, 1); m.SetUVs(1, data.Vertexes.Select(x => x.UV).ToList()); }
private GameObject generateMesh() { var SKN = System.IO.File.ReadAllBytes(this.SKNFile); BinaryReader reader = new BinaryReader(new MemoryStream(SKN)); sknData = new SknData(reader); var data = sknData; GameObject obj = new GameObject(); var meshFilter = obj.AddComponent <MeshFilter>(); meshFilter.sharedMesh = new Mesh(); //var meshrender = obj.AddComponent<MeshRenderer>(); var skinmesh = obj.AddComponent <SkinnedMeshRenderer>(); skinmesh.sharedMesh = meshFilter.sharedMesh; var m = meshFilter.sharedMesh; m.name = data.Materials[0].Name; m.SetVertices(data.Vertexes.Select(x => x.Vertex).ToList()); m.SetIndices(data.Indexes.Select(x => (int)x).ToArray(), MeshTopology.Triangles, 0); m.uv = (data.Vertexes.Select(x => x.UV).ToArray()); m.normals = (data.Vertexes.Select(x => x.Normal).ToArray()); m.boneWeights = data.Vertexes.Select(x => new BoneWeight() { weight0 = x.BoneWeight[0], weight1 = x.BoneWeight[1], weight2 = x.BoneWeight[2], weight3 = x.BoneWeight[3], boneIndex0 = x.BoneIndex[0], boneIndex1 = x.BoneIndex[1], boneIndex2 = x.BoneIndex[2], boneIndex3 = x.BoneIndex[3], }).ToArray(); return(obj); }