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 }
public override void ProcessAsset(SearchJob job) { ScriptableObject root = (ScriptableObject)AssetDatabase.LoadAssetAtPath(assetPath, typeof(ScriptableObject)); if (root != null) { job.OnAssetSearchBegin(); job.searchObject(root); // todo: cache for subjobs? job.OnAssetSearchEnd(); } }
public override void ProcessAsset(SearchJob job) { UnityEngine.Object root = (UnityEngine.Object)AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object)); if (root != null) { roots = new Object[] { root }; job.OnAssetSearchBegin(); job.searchObject(root); job.OnAssetSearchEnd(); } }
public override void ProcessAsset(SearchJob job) { AnimatorController root = (AnimatorController)AssetDatabase.LoadAssetAtPath(assetPath, typeof(AnimatorController)); if (root != null) { roots = new Object[] { root }; job.OnAssetSearchBegin(); job.searchAnimatorController(root); // todo: cache for subjobs? job.OnAssetSearchEnd(); // yield return job.searchDependencies(root); } }
public override void ProcessAsset(SearchJob job) { UnityEngine.Object root = (UnityEngine.Object)AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object)); if (root != null) { roots = new Object[] { root }; job.OnAssetSearchBegin(); job.searchObject(root); // todo: cache for subjobs? if (importer != null) { importer.SaveAndReimport(); } job.OnAssetSearchEnd(); // yield return job.searchDependencies(root); } }
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); } }