Exemple #1
0
 protected virtual void processAsset(string assetPath)
 {
     // Don't assume that this asset's *the* asset!
     if (processingOneAsset() && job.scope.scopeObj.assetPath == assetPath)
     {
         //We only have one object, and its already loaded.
         job.asset = job.scope.scopeObj.obj;
     }
     else
     {
         //Load the object.
         job.asset = (UnityEngine.Object)AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object));
     }
     if (job.asset == null)
     {
         return;
     }
     // GameObject foo = (GameObject) job.asset;
     // Debug.Log("[SearchSubJob] foo:"+foo);
     if (job.asset is GameObject)
     {
         job.searchGameObject((GameObject)job.asset);
     }
     else if (job.asset is AnimatorController)
     {
         job.searchAnimatorController((AnimatorController)job.asset);
     }
     else
     {
         job.searchObject(job.asset);
     }
     job.searchDependencies(job.asset);
 }
Exemple #2
0
        public override void ProcessAsset(SearchJob job)
        {
#if UNITY_2018_3_OR_NEWER
            PrefabStage stage = PrefabStageUtility.GetPrefabStage(sceneObjects[0]);
            if (stage != null)
            {
                isInPrefabStage = true;
            }
#endif

            roots = sceneObjects.ToArray();

            job.OnAssetSearchBegin();
            foreach (GameObject root in roots)
            {
                job.searchGameObject(root);
            }

#if UNITY_2018_3_OR_NEWER
            if (assetIsDirty && isInPrefabStage)
            {
                EditorSceneManager.MarkSceneDirty(stage.scene);
            }
#endif
        }
        public override void ProcessAsset(SearchJob job)
        {
#if UNITY_2018_3_OR_NEWER
            loadPrefab = job.scope.loadPrefab;
            // for the new prefab workflow we need to load the prefab into an
            // anonymous scene.

            if (roots == null)
            {
                if (loadPrefab)
                {
                    root = PrefabUtility.LoadPrefabContents(assetPath);
                }
                else
                {
                    root = (GameObject)AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object));
                }
                if (root == null)
                {
                    Debug.Log("Could not load " + assetPath + "!");
                    return;
                }
                shouldUnload = true;
                roots        = new UnityEngine.Object[] { root };
            }
            job.OnAssetSearchBegin();
            job.searchGameObject(root);
            job.OnAssetSearchEnd();

            if (assetIsDirty)
            {
                if (loadPrefab)
                {
                    // Known issue: when calling SaveAsPrefabAsset, unity will overwrite the name of the game object.
                    PrefabUtility.SaveAsPrefabAsset(root, assetPath);
                }
            }
#else
            root  = (GameObject)AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object));
            roots = new UnityEngine.Object[] { root };
            job.OnAssetSearchBegin();
            job.searchGameObject(root);
            job.OnAssetSearchEnd();
#endif
        }
Exemple #4
0
 public override void ProcessAsset(SearchJob job)
 {
     foreach (GameObject root in roots)
     {
         job.searchGameObject(root);
     }
     if (assetIsDirty)
     {
         EditorSceneManager.MarkSceneDirty(scene);
     }
 }
        public override void ProcessAsset(SearchJob job)
        {
            scene = SceneUtil.LoadScene(assetPath, OpenSceneMode.Single).Value;
            if (roots == null)
            {
                roots        = scene.GetRootGameObjects();
                shouldUnload = true;
            }

            job.OnAssetSearchBegin();
            foreach (GameObject root in roots)
            {
                job.searchGameObject(root);
            }
            job.OnAssetSearchEnd();
            //  yield return job.searchDependencies(roots.ToArray());

            if (assetIsDirty)
            {
                EditorSceneManager.SaveScene(scene);
            }
        }