public IExportCollection CreateCollection(Object asset) { if (OcclusionCullingSettings.IsCompatible(asset)) { if (asset.File.IsScene) { return(new SceneExportCollection(this, asset.File)); } else { return(new PrefabExportCollection(this, asset)); } } else { switch (asset.ClassID) { case ClassIDType.NavMeshData: return(new EmptyExportCollection()); case ClassIDType.AnimatorController: return(new AnimatorControllerExportCollection(this, asset)); case ClassIDType.TagManager: return(new ManagerExportCollection(this, asset)); default: return(new AssetExportCollection(this, asset)); } } }
public IExportCollection CreateCollection(Object asset) { if (!asset.IsValid) { Logger.Instance.Log(LogType.Warning, LogCategory.Export, $"Can't export '{asset}' because it isn't valid"); return(new EmptyExportCollection()); } if (OcclusionCullingSettings.IsCompatible(asset)) { if (asset.File.IsScene) { return(new SceneExportCollection(this, asset.File)); } else { return(new PrefabExportCollection(this, asset)); } } else { switch (asset.ClassID) { case ClassIDType.NavMeshData: return(new EmptyExportCollection()); default: return(new AssetExportCollection(this, asset)); } } }
public SceneExportCollection(IAssetExporter assetExporter, ISerializedFile file) { if (assetExporter == null) { throw new ArgumentNullException(nameof(assetExporter)); } if (file == null) { throw new ArgumentNullException(nameof(file)); } AssetExporter = assetExporter; Name = file.Name; m_file = file; foreach (Object asset in file.FetchAssets()) { if (OcclusionCullingSettings.IsCompatible(asset)) { AddComponent(file, asset); } } m_cexportIDs = m_cexportIDs.OrderBy(t => t.Key, this).ToDictionary(t => t.Key, t => t.Value); if (OcclusionCullingSettings.IsReadSceneGUID(file.Version)) { OcclusionCullingSettings sceneSettings = Components.Where(t => t.ClassID == ClassIDType.OcclusionCullingSettings).Select(t => (OcclusionCullingSettings)t).FirstOrDefault(); if (sceneSettings == null) { GUID = new EngineGUID(Guid.NewGuid()); } else { GUID = sceneSettings.SceneGUID; } } else { if (Config.IsGenerateGUIDByContent) { GUID = ObjectUtils.CalculateObjectsGUID(Assets); } else { GUID = new EngineGUID(Guid.NewGuid()); } } }
public IExportCollection CreateCollection(VirtualSerializedFile virtualFile, Object asset) { if (OcclusionCullingSettings.IsCompatible(asset)) { if (asset.File.Collection.IsScene(asset.File)) { return(new SceneExportCollection(this, virtualFile, asset.File)); } else { return(new PrefabExportCollection(this, virtualFile, asset)); } } else { switch (asset.ClassID) { case ClassIDType.NavMeshData: return(new EmptyExportCollection()); case ClassIDType.AnimatorController: return(new AnimatorControllerExportCollection(this, virtualFile, asset)); case ClassIDType.TimeManager: case ClassIDType.AudioManager: case ClassIDType.InputManager: case ClassIDType.Physics2DSettings: case ClassIDType.GraphicsSettings: case ClassIDType.QualitySettings: case ClassIDType.PhysicsManager: case ClassIDType.TagManager: case ClassIDType.NavMeshProjectSettings: case ClassIDType.NetworkManager: case ClassIDType.ClusterInputManager: case ClassIDType.UnityConnectSettings: return(new ManagerExportCollection(this, asset)); case ClassIDType.BuildSettings: return(new BuildSettingsExportCollection(this, virtualFile, asset)); default: return(new AssetExportCollection(this, asset)); } } }
public SceneExportCollection(IAssetExporter assetExporter, VirtualSerializedFile virtualFile, ISerializedFile file) { if (assetExporter == null) { throw new ArgumentNullException(nameof(assetExporter)); } if (file == null) { throw new ArgumentNullException(nameof(file)); } AssetExporter = assetExporter; Name = file.Name; m_file = file; foreach (Object asset in file.FetchAssets()) { if (OcclusionCullingSettings.IsCompatible(asset)) { AddComponent(file, asset); } } m_cexportIDs = m_cexportIDs.OrderBy(t => t.Key, this).ToDictionary(t => t.Key, t => t.Value); if (OcclusionCullingSettings.IsReadSceneGUID(file.Version)) { OcclusionCullingSettings sceneSettings = Components.Where(t => t.ClassID == ClassIDType.OcclusionCullingSettings).Select(t => (OcclusionCullingSettings)t).FirstOrDefault(); if (sceneSettings != null) { GUID = sceneSettings.SceneGUID; } } if (GUID.IsZero) { if (Config.IsGenerateGUIDByContent) { GUID = ObjectUtils.CalculateAssetsGUID(Assets); } else { GUID = new EngineGUID(Guid.NewGuid()); } } if (OcclusionCullingSettings.IsReadPVSData(File.Version)) { foreach (Object comp in Components) { if (comp.ClassID == ClassIDType.OcclusionCullingSettings) { OcclusionCullingSettings settings = (OcclusionCullingSettings)comp; if (settings.PVSData.Count > 0) { m_occlusionCullingSettings = settings; OcclusionCullingData = OcclusionCullingData.CreateVirtualInstance(virtualFile, settings); break; } } } } }