public void OnAssetSearchBegin(SearchJob job) { foreach (SearchItem item in validatedItems) { item.OnAssetSearchBegin(job); } }
public static PathInfo InitWithScriptableObject(ScriptableObject so, SearchJob job) { PathInfo pi = GetPathInfo(so, job); pi.objectPath = ""; return(pi); }
public override void SearchGameObject(SearchJob job, GameObject go) { job.assetData.searchExecuted = true; // Debug.Log("[SearchItemInstances] GO:"+go.name); PrefabType goType = PrefabUtility.GetPrefabType(go); if (goType == PrefabType.PrefabInstance) { #if UNITY_2018_2 || UNITY_2018_3 || UNITY_2018_4 UnityEngine.Object goPrefabObj = PrefabUtility.GetCorrespondingObjectFromSource(go); #else UnityEngine.Object goPrefabObj = PrefabUtility.GetPrefabParent(go); #endif GameObject root = PrefabUtility.FindPrefabRoot(go); bool isRootOfPrefab = root == go; if (isRootOfPrefab && goPrefabObj == objID.obj) { //Instance found! // Debug.Log("[SearchItemInstances] instance found!"+go.name); SearchResult result = new SearchResult(); result.strRep = ""; result.pathInfo = PathInfo.GetPathInfo(go, job); result.actionTaken = SearchAction.InstanceFound; job.MatchFound(result, this); replaceItem.ReplaceInstance(job, go, result); } } }
public override bool caresAboutAsset(SearchJob job) { if (job.scope.projectScope == ProjectScope.CurrentSelection) { return(true); } if (job.scope.projectScope == ProjectScope.SpecificLocation) { if (job.scope.scopeObj.isDirectory) { return(true); } if (job.scope.scopeObj.obj == null) { return(false); } return(job.scope.scopeObj.obj is GameObject); } if ((job.assetData.assetScope & AssetScope.Scenes) == AssetScope.Scenes) { //ok, we're searching scenes or prefab stages.... return(job.assetData.assetExtension == ".unity" || job.assetData.assetExtension == ".prefab"); } return(false); }
public void SearchGameObject(SearchJob job, GameObject go) { foreach (SearchItem item in validatedItems) { item.SearchGameObject(job, go); } }
public override void SearchObject(SearchJob job, SearchItem item, UnityEngine.Object obj) { if (obj is ScriptableObject) { ScriptableObject sObj = (ScriptableObject)obj; Type t = MonoScript.FromScriptableObject(sObj).GetClass(); if (typeMatches(t)) { if (!showUnusedScripts) { SearchResult result = new SearchResult(); result.pathInfo = PathInfo.InitWithScriptableObject(sObj, job); result.strRep = t.Name; if (job.options.searchType == SearchType.SearchAndReplace) { SerializedObject so = new SerializedObject(sObj); SerializedProperty m_Script = so.FindProperty("m_Script"); if (replaceItem != null) { replaceItem.ReplaceProperty(job, m_Script, result); } } job.MatchFound(result, item); } } } }
public void SearchProperty(SearchJob job, SearchItem item, SerializedProperty prop) { if (typeData != null) { typeData.SearchProperty(job, item, prop); } }
protected override void replace(SearchJob job, SerializedProperty prop, SearchResult result) { #if PSR_FULL if(prop.name == "m_Script") { if(replaceValue.obj == null) { //don't do it. result.actionTaken = SearchAction.Error; result.replaceStrRep = "(null)"; result.error = "Cannot set a MonoBehaviour's Script to null."; return; } } if(typeof(Component).IsAssignableFrom(type)) { GameObject go = ObjectUtil.GetGameObject(prop.serializedObject.targetObject); UnityEngine.Object replaceVal = go.GetComponent(type); prop.objectReferenceValue = replaceVal; // prop.objectReferenceValue = replaceValue.obj; string objName = replaceVal == null ? "(null)" : replaceVal.ToString(); result.replaceStrRep = objName; } #endif }
public static void SwapPrefab(SearchJob job, SearchResult result, GameObject gameObjToSwap, GameObject prefab, bool updateTransform, bool rename) { Transform swapParent = gameObjToSwap.transform.parent; int index = gameObjToSwap.transform.GetSiblingIndex(); result.replaceStrRep = prefab.name; result.strRep = gameObjToSwap.name; // Debug.Log("[ReplaceItemSwapObject] Instantiating:" +prefab, prefab); GameObject newObj = PrefabUtility.InstantiatePrefab(prefab) as GameObject; if (newObj != null) { newObj.transform.parent = swapParent; newObj.transform.SetSiblingIndex(index); Transform oldT = gameObjToSwap.transform; if (updateTransform) { newObj.transform.rotation = oldT.rotation; newObj.transform.localPosition = oldT.localPosition; newObj.transform.localScale = oldT.localScale; } if (rename) { newObj.name = gameObjToSwap.name; } result.pathInfo = PathInfo.GetPathInfo(newObj, job); UnityEngine.Object.DestroyImmediate(gameObjToSwap); } else { Debug.Log("[Search & Replace] No object instantiated...hrm!"); } }
public void SearchObject(SearchJob job, UnityEngine.Object obj) { foreach (SearchItem item in validatedItems) { item.SearchObject(job, obj); } }
public virtual void SearchGameObject(SearchJob job, SearchItem item, GameObject go) { if (typeData != null) { typeData.SearchGameObject(job, item, go); } }
public virtual void SearchObject(SearchJob job, SearchItem item, UnityEngine.Object obj) { if (typeData != null) { typeData.SearchObject(job, item, obj); } }
public override void SearchGameObject(SearchJob job, GameObject go) { job.assetData.searchExecuted = true; //We only do this search if its a game object AND its a search (NOT a replace). if (searchAsGameObject != null && job.options.searchType == SearchType.Search && subsearch == null) { // if(searchAsGameObject == go) // { // Debug.Log("[SearchItemGlobal] FOUND THING"); // } #if UNITY_2018_2 || UNITY_2018_3 || UNITY_2018_4 UnityEngine.Object goPrefab = PrefabUtility.GetCorrespondingObjectFromSource(go); #else UnityEngine.Object goPrefab = PrefabUtility.GetPrefabParent(go); #endif // Debug.Log("[SearchItemGlobal] goPrefab:"+goPrefab); if (goPrefab != null && goPrefab == searchAsGameObject) { SearchResult result = new SearchResult(); result.strRep = ""; result.pathInfo = PathInfo.GetPathInfo(go, job); result.actionTaken = SearchAction.InstanceFound; job.MatchFound(result, this); } } typeField.SearchGameObject(job, this, go); }
public void OnSearchEnd(SearchJob job, SearchItem item) { if (typeData != null) { typeData.OnSearchEnd(job, item); } }
protected override void replace(SearchJob job, SerializedProperty prop, SearchResult result) { #if PSR_FULL if(prop.name == "m_Script") { prop.objectReferenceValue = replaceValue.obj; result.replaceStrRep = type.Name; prop.serializedObject.ApplyModifiedProperties(); result.actionTaken = SearchAction.Replaced; }else{ bool isScript = typeof(ScriptableObject).IsAssignableFrom(type); if(isScript) { UnityEngine.Object obj = prop.objectReferenceValue; string path = AssetDatabase.GetAssetPath(obj.GetInstanceID()); if(path == "") { // It looks like this is a scriptable object that is serialized within // another object and doesn't have a specific location on disk. SerializedObject so = new SerializedObject(obj); SerializedProperty m_Script = so.FindProperty("m_Script"); m_Script.objectReferenceValue = replaceValue.obj; result.replaceStrRep = type.Name; so.ApplyModifiedProperties(); }else{ result.actionTaken = SearchAction.Ignored; } }else{ result.actionTaken = SearchAction.InstanceFound; } } #endif }
protected override void replace(SearchJob job, SerializedProperty prop, SearchResult result) { #if PSR_FULL prop.boolValue = replaceValue; result.replaceStrRep = replaceValue.ToString(); #endif }
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 void SearchProperty(SearchJob job, SerializedProperty prop) { foreach (SearchItem item in validatedItems) { item.SearchProperty(job, prop); } }
public void OnSearchEnd(SearchJob job) { foreach (SearchItem item in validatedItems) { item.OnSearchEnd(job); } }
public void OnAssetSearchBegin(SearchJob job, SearchItem item) { if (typeData != null) { typeData.OnAssetSearchBegin(job, item); } }
public override bool caresAboutAsset(SearchJob job) { if (job.scope.projectScope != ProjectScope.EntireProject && job.scope.searchDependencies) { return(true); } return((searchScope & job.assetData.assetScope) != AssetScope.None); }
public void ReplaceProperty(SearchJob job, SerializedProperty prop, SearchResult result) { #if PSR_FULL if (typeData != null) { typeData.ReplaceProperty(job, prop, result); } #endif }
private void doSearchAndReplace() { if (currentSearch.CanSearchAndReplace(searchOptions)) { SearchOptions options = searchOptions.Copy(); options.searchType = SearchType.SearchAndReplace; searchJob = new SearchJob(currentSearch, options, currentSearch.searchScope.ToData(options)); } }
public SceneSubJob(SearchJob j, AssetScope sc, string[] allAssets, string[] s) : base(j, sc, allAssets, s, false) { sceneSetups = EditorSceneManager.GetSceneManagerSetup(); foreach (SceneSetup sceneSetup in sceneSetups) { loadScenesHash[sceneSetup.path] = sceneSetup; // Debug.Log("[SceneSubJob] scene:"+sceneSetup.path); } }
protected override void replace(SearchJob job, SerializedProperty prop, SearchResult result) { #if PSR_FULL Vector2 v2 = prop.vector2Value; v2.x = xField.Replace(v2.x); v2.y = yField.Replace(v2.y); prop.vector2Value = v2; result.replaceStrRep = v2.ToString(); #endif }
public override bool caresAboutAsset(SearchJob job) { //we only care about scenes, because that is only where instances can live. if ((job.assetData.assetScope & AssetScope.Scenes) == AssetScope.Scenes) { //ok, we're searching scenes... return(job.assetData.assetExtension == ".unity"); } return(false); }
private void doSearch() { // Just in case I'm wrapping this! if (currentSearch.CanSearch(searchOptions)) { SearchOptions options = searchOptions.Copy(); options.searchType = SearchType.Search; searchJob = new SearchJob(currentSearch, options, currentSearch.searchScope.ToData(options)); } }
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(); } }
protected override void replace(SearchJob job, SerializedProperty prop, SearchResult result) { #if PSR_FULL Vector3 v3 = prop.vector3Value; v3.x = xField.Replace(v3.x); v3.y = yField.Replace(v3.y); v3.z = zField.Replace(v3.z); prop.vector3Value = v3; result.replaceStrRep = v3.ToString(); #endif }
public override void ProcessAsset(SearchJob job) { foreach (GameObject root in roots) { job.searchGameObject(root); } if (assetIsDirty) { EditorSceneManager.MarkSceneDirty(scene); } }