protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container)
        {
            YAMLMappingNode node = base.ExportYAMLRoot(container);

            node.AddSerializedVersion(GetSerializedVersion(container.ExportVersion));
            node.Add(SceneName, Scene.ExportYAML(container));
            node.Add(LightmapsName, Lightmaps.ExportYAML(container));
            if (IsReadAOTextures(container.ExportVersion))
            {
                node.Add(AOTexturesName, GetAOTextures(container.Version).ExportYAML(container));
            }
            if (IsReadLightmapsCacheFiles(container.Version))
            {
                node.Add(LightmapsCacheFilesName, GetLightmapsCacheFiles(container.Version).ExportYAML());
            }
            node.Add(LightProbesName, LightProbes.ExportYAML(container));
            node.Add(LightmapsModeName, LightmapsMode);
            node.Add(BakedAmbientProbeInLinearName, BakedAmbientProbeInLinear.ExportYAML(container));
            node.Add(LightmappedRendererDataName, LightmappedRendererData.ExportYAML(container));
            node.Add(LightmappedRendererDataIDsName, LightmappedRendererDataIDs.ExportYAML(container));
            node.Add(EnlightenSceneMappingName, EnlightenSceneMapping.ExportYAML(container));
            node.Add(EnlightenSceneMappingRendererIDsName, EnlightenSceneMappingRendererIDs.ExportYAML(container));
            node.Add(LightsName, Lights.ExportYAML(container));
            node.Add(LightBakingOutputsName, LightBakingOutputs.ExportYAML(container));
            if (IsReadBakedReflectionProbeCubemapCacheFiles(container.ExportVersion))
            {
                node.Add(BakedReflectionProbeCubemapCacheFilesName, GetBakedReflectionProbeCubemapCacheFiles(container.Version).ExportYAML());
            }
            node.Add(BakedReflectionProbeCubemapsName, BakedReflectionProbeCubemaps.ExportYAML(container));
            node.Add(BakedReflectionProbesName, BakedReflectionProbes.ExportYAML(container));
            node.Add(EnlightenDataName, EnlightenData.ExportYAML());
            node.Add(EnlightenDataVersionName, EnlightenDataVersion);
            return(node);
        }
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            Scene.Read(reader);

            m_lightmaps = reader.ReadAssetArray <LightmapData>();
            reader.AlignStream(AlignType.Align4);

            if (IsReadAOTextures(reader.Version))
            {
                m_AOTextures = reader.ReadAssetArray <PPtr <Texture2D> >();
            }
            if (IsReadLightmapsCacheFiles(reader.Version))
            {
                m_lightmapsCacheFiles = reader.ReadStringArray();
            }

            LightProbes.Read(reader);
            LightmapsMode = reader.ReadInt32();
            BakedAmbientProbeInLinear.Read(reader);
            m_lightmappedRendererData = reader.ReadAssetArray <RendererData>();
            reader.AlignStream(AlignType.Align4);

            m_lightmappedRendererDataIDs = reader.ReadAssetArray <SceneObjectIdentifier>();
            reader.AlignStream(AlignType.Align4);

            EnlightenSceneMapping.Read(reader);
            m_enlightenSceneMappingRendererIDs = reader.ReadAssetArray <SceneObjectIdentifier>();
            reader.AlignStream(AlignType.Align4);

            m_lights = reader.ReadAssetArray <SceneObjectIdentifier>();
            reader.AlignStream(AlignType.Align4);

            m_lightBakingOutputs = reader.ReadAssetArray <LightBakingOutput>();
            reader.AlignStream(AlignType.Align4);

            if (IsReadBakedReflectionProbeCubemapCacheFiles(reader.Version))
            {
                m_bakedReflectionProbeCubemapCacheFiles = reader.ReadStringArray();
            }
            m_bakedReflectionProbeCubemaps = reader.ReadAssetArray <PPtr <Texture> >();
            m_bakedReflectionProbes        = reader.ReadAssetArray <SceneObjectIdentifier>();
            reader.AlignStream(AlignType.Align4);

            m_enlightenData = reader.ReadByteArray();
            reader.AlignStream(AlignType.Align4);

            EnlightenDataVersion = reader.ReadInt32();
        }
        public override void Read(AssetStream stream)
        {
            base.Read(stream);

            Scene.Read(stream);
            if (IsReadLightmaps(stream.Flags))
            {
                m_lightmaps = stream.ReadArray <LightmapData>();
                stream.AlignStream(AlignType.Align4);

                LightProbes.Read(stream);
                LightmapsMode = stream.ReadInt32();
                BakedAmbientProbeInLinear.Read(stream);
                m_lightmappedRendererData = stream.ReadArray <RendererData>();
                stream.AlignStream(AlignType.Align4);

                m_lightmappedRendererDataIDs = stream.ReadArray <SceneObjectIdentifier>();
                stream.AlignStream(AlignType.Align4);

                EnlightenSceneMapping.Read(stream);
                m_enlightenSceneMappingRendererIDs = stream.ReadArray <SceneObjectIdentifier>();
                stream.AlignStream(AlignType.Align4);

                m_lights = stream.ReadArray <SceneObjectIdentifier>();
                stream.AlignStream(AlignType.Align4);

                m_lightBakingOutputs = stream.ReadArray <LightBakingOutput>();
                stream.AlignStream(AlignType.Align4);

                m_bakedReflectionProbeCubemaps = stream.ReadArray <PPtr <Texture> >();
                m_bakedReflectionProbes        = stream.ReadArray <SceneObjectIdentifier>();
                stream.AlignStream(AlignType.Align4);

                if (IsReadEnlightenData(stream.Flags))
                {
                    m_enlightenData = stream.ReadByteArray();
                    stream.AlignStream(AlignType.Align4);
                }

                EnlightenDataVersion = stream.ReadInt32();
            }
        }
        protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container)
        {
            YAMLMappingNode node = base.ExportYAMLRoot(container);

            node.Add("m_Scene", Scene.ExportYAML(container));
            node.Add("m_Lightmaps", Lightmaps.ExportYAML(container));
            node.Add("m_LightProbes", LightProbes.ExportYAML(container));
            node.Add("m_LightmapsMode", LightmapsMode);
            node.Add("m_BakedAmbientProbeInLinear", BakedAmbientProbeInLinear.ExportYAML(container));
            node.Add("m_LightmappedRendererData", LightmappedRendererData.ExportYAML(container));
            node.Add("m_LightmappedRendererDataIDs", LightmappedRendererDataIDs.ExportYAML(container));
            node.Add("m_EnlightenSceneMapping", EnlightenSceneMapping.ExportYAML(container));
            node.Add("m_EnlightenSceneMappingRendererIDs", EnlightenSceneMappingRendererIDs.ExportYAML(container));
            node.Add("m_Lights", Lights.ExportYAML(container));
            node.Add("m_LightBakingOutputs", LightBakingOutputs.ExportYAML(container));
            node.Add("m_BakedReflectionProbeCubemaps", BakedReflectionProbeCubemaps.ExportYAML(container));
            node.Add("m_BakedReflectionProbes", BakedReflectionProbes.ExportYAML(container));
            node.Add("m_EnlightenData", EnlightenData.ExportYAML());
            node.Add("m_EnlightenDataVersion", EnlightenDataVersion);
            return(node);
        }