void OnGetEncodedAudioData(long ticks, string encodingFilename, byte[] data)
        {
            AudioInfo audioinfo = serializer.CreateAudioInfo(ticks);

            serializer.Send(audioinfo, ticks);
            serializer.Send(data, "audio", encodingFilename);
        }
Exemple #2
0
        void CreateInfos()
        {
            Dictionary <string, Material> materials = new Dictionary <string, Material>();
            Dictionary <string, Texture>  textures  = new Dictionary <string, Texture>();
            List <MeshInfo>     meshInfos           = new List <MeshInfo>();
            List <MaterialInfo> materialInfos       = new List <MaterialInfo>();

            List <string> meshNames     = new List <string>();
            List <string> materialNames = new List <string>();
            List <string> textureNames  = new List <string>();

            for (int i = 0; i < renderers.Count; i++)
            {
                SkinnedMeshRenderer renderer = renderers[i];
                if (renderer != null)
                {
                    MeshInfo meshInfo = serializer.CreateMeshInfo(renderer);
                    if (meshInfo == null)
                    {
                        continue;
                    }
                    meshInfos.Add(meshInfo);
                    meshNames.Add("mesh" + i + ".json");

                    for (int j = 0; j < renderer.sharedMaterials.Length; j++)
                    {
                        Material mat = renderer.sharedMaterials[j];
                        Material dummy;
                        if (materials.TryGetValue(mat.name, out dummy))
                        {
                            continue;
                        }
                        materials.Add(mat.name, mat);


                        MaterialInfo materialInfo = serializer.CreateMaterialInfo(mat);
                        if (materialInfo == null)
                        {
                            continue;
                        }
                        materialInfos.Add(materialInfo);
                        materialNames.Add("material" + materialNames.Count + ".json");

                        List <KeyValuePair <string, Texture> > texturePairs =
                            serializer.GetTexturesFromMaterial(mat);
                        foreach (KeyValuePair <string, Texture> texturePair in texturePairs)
                        {
                            Texture dummyTexture;
                            if (textures.TryGetValue(texturePair.Key, out dummyTexture))
                            {
                                continue;
                            }
                            textures.Add(texturePair.Key, texturePair.Value);
                            textureNames.Add(texturePair.Key + ".png");
                        }
                    }
                }
            }

            ChannelInfo channelInfo = serializer.CreateChannelInfo(
                areaRange,
                packageSize,
                frameInterval,
                combinedFrames,
                meshNames,
                materialNames,
                textureNames
                );

            serializer.Send(channelInfo);

            for (int i = 0; i < meshInfos.Count; i++)
            {
                MeshInfo meshInfo = meshInfos[i];
                serializer.Send(meshInfo, i);
            }

            for (int i = 0; i < materialInfos.Count; i++)
            {
                MaterialInfo matInfo = materialInfos[i];
                serializer.Send(matInfo, i);
            }

            foreach (KeyValuePair <string, Texture> texturePair in textures)
            {
                Texture texture = texturePair.Value;
                serializer.Send(texture, true);
            }
        }