public IExportCollection CreateCollection(VirtualSerializedFile virtualFile, Object asset) { if (OcclusionCullingSettings.IsSceneCompatible(asset)) { if (asset.File.Collection.IsScene(asset.File)) { return(new SceneExportCollection(this, virtualFile, asset.File)); } else if (PrefabExportCollection.IsValidAsset(asset)) { return(new PrefabExportCollection(this, virtualFile, asset)); } else { return(new FailExportCollection(this, asset)); } } else { switch (asset.ClassID) { 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)); case ClassIDType.MonoBehaviour: { MonoBehaviour monoBehaviour = (MonoBehaviour)asset; if (monoBehaviour.IsScriptableObject) { return(new AssetExportCollection(this, asset)); } else { // such MonoBehaviours as StateMachineBehaviour in AnimatorController return(new EmptyExportCollection()); } } default: return(new AssetExportCollection(this, asset)); } } }
private PPtr <Prefab> GetPrefabInternal(IExportContainer container) { if (IsReadPrefabParentObject(container.Flags)) { return(PrefabInternal); } if (container.ExportFlags.IsForPrefab()) { PrefabExportCollection prefabCollection = (PrefabExportCollection)container.CurrentCollection; return(prefabCollection.Asset.File.CreatePPtr((Prefab)prefabCollection.Asset)); } return(default);
private PPtr <Prefab> GetPrefabInstance(IExportContainer container) { #if UNIVERSAL if (HasCorrespondingSourceObject(container.Flags)) { return(PrefabInstance); } #endif #warning TODO: set PrefabInstance for all assets in PrefabContainer if (container.ExportFlags.IsForPrefab()) { PrefabExportCollection prefabCollection = (PrefabExportCollection)container.CurrentCollection; return(prefabCollection.Asset.File.CreatePPtr((Prefab)prefabCollection.Asset)); } return(default);
private PPtr <PrefabInstance> GetPrefabInstance(IExportContainer container) { #if UNIVERSAL if (container.ExportLayout.EditorExtension.HasPrefabInstanceInvariant) { return(PrefabInstance); } #endif #warning TODO: set PrefabInstance for all assets in PrefabContainer if (container.ExportFlags.IsForPrefab()) { PrefabExportCollection prefabCollection = (PrefabExportCollection)container.CurrentCollection; return(prefabCollection.Asset.File.CreatePPtr((PrefabInstance)prefabCollection.Asset)); } return(default);