public string toJsonString()
        {
            FastJsonWriter writer = new FastJsonWriter();

            writeRawJsonValue(writer);
            return(writer.getString());
        }
        public static string toJsonString <T>(this T arg) where T : IFastJsonValue
        {
            if (arg == null)
            {
                return(string.Empty);
            }
            var writer = new FastJsonWriter();

            arg.writeRawJsonValue(writer);
            return(writer.getString());
        }
示例#3
0
            public string toJsonString()
            {
                FastJsonWriter writer = new FastJsonWriter();

                writer.beginDocument();
                writer.beginKeyArray("objects");
                foreach (var cur in objects)
                {
                    writer.beginObjectValue();
                    writer.writeKeyVal("name", cur.name);
                    writer.writeKeyVal("instanceId", cur.instanceId);
                    writer.writeKeyVal("id", cur.id);
                    writer.writeKeyVal("localPosition", cur.localPosition);
                    writer.writeKeyVal("localRotation", cur.localRotation);
                    writer.writeKeyVal("localScale", cur.localScale);
                    writer.writeKeyVal("worldMatrix", cur.worldMatrix);
                    writer.writeKeyVal("localMatrix", cur.localMatrix);
                    writer.writeKeyVal("children", cur.children);
                    writer.writeKeyVal("parent", cur.parent);
                    writer.writeKeyVal("mesh", cur.mesh);
                    writer.writeKeyVal("isStatic", cur.isStatic);
                    writer.writeKeyVal("lightMapStatic", cur.lightMapStatic);
                    writer.writeKeyVal("navigationStatic", cur.navigationStatic);
                    writer.writeKeyVal("occluderStatic", cur.occluderStatic);
                    writer.writeKeyVal("occludeeStatic", cur.occludeeStatic);
                    writer.writeKeyVal("reflectionProbeStatic", cur.reflectionProbeStatic);
                    writer.beginKeyArray("renderer");
                    if (cur.renderer != null)
                    {
                        foreach (var r in cur.renderer)
                        {
                            writer.beginObjectValue();
                            writer.writeKeyVal("lightmapIndex", r.lightmapIndex);
                            writer.writeKeyVal("shadowCastingMode", r.shadowCastingMode);
                            writer.writeKeyVal("lightmapScaleOffset", r.lightmapScaleOffset);
                            writer.writeKeyVal("materials", r.materials);
                            writer.writeKeyVal("receiveShadows", r.receiveShadows);
                            writer.endObject();
                        }
                    }
                    writer.endArray();
                    writer.beginKeyArray("light");
                    if (cur.light != null)
                    {
                        foreach (var l in cur.light)
                        {
                            writer.beginObjectValue();
                            writer.writeKeyVal("bounceIntensity", l.bounceIntensity);
                            writer.writeKeyVal("color", l.color);
                            writer.writeKeyVal("intensity", l.intensity);
                            writer.writeKeyVal("range", l.range);
                            writer.writeKeyVal("renderMode", l.renderMode);
                            writer.writeKeyVal("shadows", l.shadows);
                            writer.writeKeyVal("shadowStrength", l.shadowStrength);
                            writer.writeKeyVal("spotAngle", l.spotAngle);
                            writer.writeKeyVal("type", l.type);
                            writer.endObject();
                        }
                    }
                    writer.endArray();
                    writer.endObject();
                }
                writer.endArray();
                writer.beginKeyArray("materials");
                foreach (var cur in materials)
                {
                    writer.beginObjectValue();
                    writer.writeKeyVal("id", cur.id);
                    writer.writeKeyVal("renderQueue", cur.renderQueue);
                    writer.writeKeyVal("name", cur.name);
                    writer.writeKeyVal("path", cur.path);
                    writer.writeKeyVal("shader", cur.shader);
                    //writer.writeKeyVal("renderType", cur.renderType);
                    writer.writeKeyVal("mainTexture", cur.mainTexture);
                    writer.writeKeyVal("mainTextureOffset", cur.mainTextureOffset);
                    writer.writeKeyVal("mainTextureScale", cur.mainTextureScale);
                    writer.writeKeyVal("color", cur.color);
                    writer.writeKeyVal("useNormalMap", cur.useNormalMap);
                    writer.writeKeyVal("useAlphaTest", cur.useAlphaTest);
                    writer.writeKeyVal("useAlphaBlend", cur.useAlphaBlend);
                    writer.writeKeyVal("useAlphaPremultiply", cur.useAlphaPremultiply);
                    writer.writeKeyVal("useEmission", cur.useEmission);
                    writer.writeKeyVal("useParallax", cur.useParallax);
                    writer.writeKeyVal("useDetailMap", cur.useDetailMap);
                    writer.writeKeyVal("useMetallic", cur.useMetallic);
                    writer.writeKeyVal("useSpecular", cur.useSpecular);
                    writer.writeKeyVal("albedoTex", cur.albedoTex);
                    writer.writeKeyVal("specularTex", cur.specularTex);
                    writer.writeKeyVal("metallicTex", cur.metallicTex);
                    writer.writeKeyVal("normalMapTex", cur.normalMapTex);
                    writer.writeKeyVal("occlusionTex", cur.occlusionTex);
                    writer.writeKeyVal("parallaxTex", cur.parallaxTex);
                    writer.writeKeyVal("emissionTex", cur.emissionTex);
                    writer.writeKeyVal("detailMaskTex", cur.detailMaskTex);
                    writer.writeKeyVal("detailAlbedoTex", cur.detailAlbedoTex);
                    writer.writeKeyVal("detailNormalMapTex", cur.detailNormalMapTex);
                    writer.writeKeyVal("alphaCutoff", cur.alphaCutoff);
                    writer.writeKeyVal("smoothness", cur.smoothness);
                    writer.writeKeyVal("specularColor", cur.specularColor);
                    writer.writeKeyVal("metallic", cur.metallic);
                    writer.writeKeyVal("bumpScale", cur.bumpScale);
                    writer.writeKeyVal("parallaxScale", cur.parallaxScale);
                    writer.writeKeyVal("occlusionStrength", cur.occlusionStrength);
                    writer.writeKeyVal("emissionColor", cur.emissionColor);
                    writer.writeKeyVal("detailMapScale", cur.detailMapScale);
                    writer.writeKeyVal("secondaryUv", cur.secondaryUv);
                    writer.endObject();
                }
                writer.endArray();
                writer.beginKeyArray("meshes");
                foreach (var cur in meshes)
                {
                    writer.beginObjectValue();
                    writer.writeKeyVal("name", cur.name);
                    writer.writeKeyVal("id", cur.id);
                    writer.writeKeyVal("path", cur.path);
                    writer.writeKeyVal("materials", cur.materials);
                    writer.writeKeyVal("readable", cur.readable);
                    writer.writeKeyVal("vertexCount", cur.vertexCount);
                    writer.writeKeyVal("colors", cur.colors);
                    writer.writeKeyVal("verts", cur.verts);
                    writer.writeKeyVal("normals", cur.normals);
                    writer.writeKeyVal("uv0", cur.uv0);
                    writer.writeKeyVal("uv1", cur.uv1);
                    writer.writeKeyVal("uv2", cur.uv2);
                    writer.writeKeyVal("uv3", cur.uv3);
                    writer.writeKeyVal("subMeshCount", cur.subMeshCount);
                    writer.beginKeyArray("subMeshes");
                    foreach (var curSubMesh in cur.subMeshes)
                    {
                        writer.beginObjectValue();
                        writer.writeKeyVal("triangles", curSubMesh.triangles);
                        writer.endObject();
                    }
                    writer.endArray();
                    writer.endObject();
                }
                writer.endArray();
                writer.beginKeyArray("textures");
                foreach (var cur in textures)
                {
                    writer.beginObjectValue();
                    writer.writeKeyVal("name", cur.name);
                    writer.writeKeyVal("id", cur.id);
                    writer.writeKeyVal("path", cur.path);
                    writer.writeKeyVal("filterMode", cur.filterMode);
                    writer.writeKeyVal("mipMapBias", cur.mipMapBias);
                    writer.writeKeyVal("width", cur.width);
                    writer.writeKeyVal("height", cur.height);
                    writer.writeKeyVal("wrapMode", cur.wrapMode);
                    writer.writeKeyVal("isTex2D", cur.isTex2D);
                    writer.writeKeyVal("isRenderTarget", cur.isRenderTarget);
                    writer.writeKeyVal("alphaTransparency", cur.alphaTransparency);
                    writer.writeKeyVal("anisoLevel", cur.anisoLevel);
                    writer.endObject();
                }
                writer.endArray();
                writer.beginKeyArray("resources");
                foreach (var cur in resources)
                {
                    writer.writeValue(cur);
                }
                writer.endArray();
                writer.endDocument();
                return(writer.getString());
            }