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));
                }
            }
        }
Exemple #2
0
 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);
Exemple #3
0
        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);