public static List <string> FindAssetOnlyName(CustomPath path) { if (!Application.isEditor) { return(null); } List <string> ret = new List <string>(); string fileName = string.Empty; foreach (string t in path._pathParts) { if (t.Contains('.')) { fileName = t; } } foreach (var t in AssetDatabase.GetAllAssetPaths()) { if (t.Contains(fileName)) { ret.Add(t); } } return(ret); }
public static IProcedureParsable FindAssetWithPath(CustomPath path) { int tempIndex = path.FileNameIndex + 1; if (path.FileName.EndsWith(PrefabExtension)) { GameObject targetGameObject = AssetDatabase.LoadAssetAtPath <GameObject>(path.FilePath); if (targetGameObject == null) { return(null); } Transform targetObject = targetGameObject.transform; while (path[tempIndex].Contains(ObjPrefix)) { targetObject = targetObject.Find(path[tempIndex].Substring(2)); tempIndex++; } string componentName = path[tempIndex++].Substring(2); IProcedureParsable targetComponent = targetObject.GetComponent(componentName) as IProcedureParsable; if (targetComponent == null) { return(null); } return(targetComponent); } else if (path.FilePath.EndsWith(AssetExtension)) { IProcedureParsable targetScriptableObject = AssetDatabase.LoadAssetAtPath <ScriptableObject>(path.FilePath) as IProcedureParsable; if (targetScriptableObject == null) { return(null); } return(targetScriptableObject); } return(null); }