private YAMLNode GetExportOcclusionCullingData(IExportContainer container) { if (IsReadPVSData(container.Version)) { if (m_PVSData.Length == 0) { return(default(PPtr <OcclusionCullingData>).ExportYAML(container)); } else { SceneExportCollection scene = (SceneExportCollection)container.CurrentCollection; PPtr <OcclusionCullingData> occlusionData = PPtr <OcclusionCullingData> .CreateVirtualPointer(scene.OcclusionCullingData); return(occlusionData.ExportYAML(container)); } } else { if (Classes.OcclusionCullingData.IsReadStaticRenderers(container.Flags)) { return(OcclusionCullingData.ExportYAML(container)); } else { #warning TODO: OcclusionCullingData has to find all corresponding OcclusionCullingSettings and fill IDs itself OcclusionCullingData data = OcclusionCullingData.FindObject(container); if (data != null) { data.SetIDs(container, SceneGUID, StaticRenderers, Portals); } return(OcclusionCullingData.ExportYAML(container)); } } }
protected override YAMLMappingNode ExportYAMLRoot(IAssetsExporter exporter) { #warning TODO: values acording to read version (current 2017.3.0f3) YAMLMappingNode node = base.ExportYAMLRoot(exporter); node.AddSerializedVersion(GetSerializedVersion(exporter.Version)); node.Add("m_OcclusionBakeSettings", OcclusionBakeSettings.ExportYAML(exporter)); node.Add("m_SceneGUID", SceneGUID.ExportYAML(exporter)); node.Add("m_OcclusionCullingData", OcclusionCullingData.ExportYAML(exporter)); return(node); }
public override IEnumerable <Object> FetchDependencies(ISerializedFile file, bool isLog = false) { foreach (Object @object in base.FetchDependencies(file, isLog)) { yield return(@object); } yield return(OcclusionCullingData.FetchDependency(file, isLog, ToLogString, "m_OcclusionCullingData")); foreach (PPtr <Renderer> staticRenderer in StaticRenderers) { yield return(staticRenderer.FetchDependency(file, isLog, ToLogString, "m_StaticRenderers")); } foreach (PPtr <OcclusionPortal> portal in Portals) { yield return(portal.FetchDependency(file, isLog, ToLogString, "m_Portals")); } }
public override void Read(AssetReader reader) { base.Read(reader); if (IsReadPVSData(reader.Version)) { m_PVSData = reader.ReadByteArray(); reader.AlignStream(AlignType.Align4); } if (IsReadQueryMode(reader.Version)) { QueryMode = reader.ReadInt32(); } if (IsReadOcclusionBakeSettings(reader.Version, reader.Flags)) { if (IsReadOcclusionBakeSettingsFirst(reader.Version)) { OcclusionBakeSettings.Read(reader); } } if (IsReadSceneGUID(reader.Version)) { SceneGUID.Read(reader); OcclusionCullingData.Read(reader); } if (IsReadStaticRenderers(reader.Version, reader.Flags)) { m_staticRenderers = reader.ReadArray <PPtr <Renderer> >(); } if (IsReadPortals(reader.Version, reader.Flags)) { m_portals = reader.ReadArray <PPtr <OcclusionPortal> >(); } if (IsReadOcclusionBakeSettings(reader.Version, reader.Flags)) { if (!IsReadOcclusionBakeSettingsFirst(reader.Version)) { OcclusionBakeSettings.Read(reader); } } }
public override void Read(AssetStream stream) { base.Read(stream); if (IsReadAnything(stream.Version)) { if (IsReadPVSData(stream.Version)) { m_PVSData = stream.ReadByteArray(); stream.AlignStream(AlignType.Align4); if (IsReadQueryMode(stream.Version)) { QueryMode = stream.ReadInt32(); } m_staticRenderers = stream.ReadArray <PPtr <Renderer> >(); if (IsReadPortals(stream.Version)) { m_portals = stream.ReadArray <PPtr <OcclusionPortal> >(); } if (IsReadOcclusionBakeSettings(stream.Flags)) { OcclusionBakeSettings.Read(stream); } } else { if (IsReadOcclusionBakeSettings(stream.Flags)) { OcclusionBakeSettings.Read(stream); } SceneGUID.Read(stream); OcclusionCullingData.Read(stream); if (IsReadStaticRenderers(stream.Version, stream.Flags)) { m_staticRenderers = stream.ReadArray <PPtr <Renderer> >(); m_portals = stream.ReadArray <PPtr <OcclusionPortal> >(); } } } }
private YAMLNode GetExportOcclusionCullingData(IExportContainer container) { if (IsReadPVSData(container.Version)) { if (m_PVSData.Length == 0) { return(ExportPointer.EmptyPointer.ExportYAML(container)); } else { #warning HACK!!! AssetInfo dataAssetInfo = new AssetInfo(File, 0, ClassIDType.OcclusionCullingData); OcclusionCullingData ocData = new OcclusionCullingData(dataAssetInfo, container, m_PVSData, SceneGUID, StaticRenderers, Portals); SceneExportCollection scene = (SceneExportCollection)container.CurrentCollection; scene.OcclusionCullingData = ocData; var exPointer = container.CreateExportPointer(ocData); return(exPointer.ExportYAML(container)); } } else { #warning TODO: OcclusionCullingData has to find all corresponding OcclusionCullingSettings and fill IDs itself if (Classes.OcclusionCullingData.IsReadStaticRenderers(container.Flags)) { return(OcclusionCullingData.ExportYAML(container)); } else { OcclusionCullingData data = OcclusionCullingData.FindObject(container); if (data != null) { data.SetIDs(container, SceneGUID, StaticRenderers, Portals); } return(OcclusionCullingData.ExportYAML(container)); } } }