public static void FindAllAssemblyScripts(AssemblyDefinition.UnityAssembly assemblyId) { var editor = false; var firstPass = false; var pattern = ""; switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptFirstPass: case AssemblyDefinition.UnityAssembly.BooFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: firstPass = true; break; } switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.CSharp: case AssemblyDefinition.UnityAssembly.CSharpEditor: pattern = ".cs"; break; case AssemblyDefinition.UnityAssembly.UnityScriptFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScript: case AssemblyDefinition.UnityAssembly.UnityScriptEditor: pattern = ".js"; break; case AssemblyDefinition.UnityAssembly.BooFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: case AssemblyDefinition.UnityAssembly.Boo: case AssemblyDefinition.UnityAssembly.BooEditor: pattern = ".boo"; break; } switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditor: case AssemblyDefinition.UnityAssembly.UnityScriptEditor: case AssemblyDefinition.UnityAssembly.BooEditor: editor = true; break; } //var scripts = FindAssets("t:MonoScript"); var scripts = Directory.GetFiles("Assets", "*" + pattern, SearchOption.AllDirectories); var count = scripts.Length; if (assets == null) { assets = new List <string>(count); } bool isUnity_5_2_1p4_orNewer = true; #if UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 isUnity_5_2_1p4_orNewer = Application.unityVersion.StartsWith("5.2.1p") && int.Parse(Application.unityVersion.Substring("5.2.1p".Length)) >= 4; #endif for (var i = count; i-- > 0;) { var path = scripts[i]; scripts[i] = path = path.Replace('\\', '/'); string lowerPath = path.ToLowerInvariant(); if (path.Contains("/.") || AssemblyDefinition.IsIgnoredScript(lowerPath)) { scripts[i] = scripts[--count]; continue; } scripts[i] = AssetDatabase.AssetPathToGUID(scripts[i]); var extension = Path.GetExtension(lowerPath); if (extension != pattern) { scripts[i] = scripts[--count]; continue; } var isFirstPass = lowerPath.StartsWith("assets/standard assets/", System.StringComparison.Ordinal) || lowerPath.StartsWith("assets/pro standard assets/", System.StringComparison.Ordinal) || lowerPath.StartsWith("assets/plugins/", System.StringComparison.Ordinal); if (firstPass != isFirstPass) { scripts[i] = scripts[--count]; continue; } var isEditor = false; if (isFirstPass && !isUnity_5_2_1p4_orNewer) { isEditor = lowerPath.StartsWith("assets/plugins/editor/", System.StringComparison.Ordinal) || lowerPath.StartsWith("assets/standard assets/editor/", System.StringComparison.Ordinal) || lowerPath.StartsWith("assets/pro standard assets/editor/", System.StringComparison.Ordinal); } else { isEditor = lowerPath.Contains("/editor/"); } if (editor != isEditor) { scripts[i] = scripts[--count]; continue; } assets.Add(scripts[i]); } //var joined = string.Join(", ", scripts, 0, count); //Debug.Log(joined); }
public static void FindAllAssemblyScripts(AssemblyDefinition.UnityAssembly assemblyId) { var editor = false; var firstPass = false; var pattern = ""; switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptFirstPass: case AssemblyDefinition.UnityAssembly.BooFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: firstPass = true; break; } switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.CSharp: case AssemblyDefinition.UnityAssembly.CSharpEditor: pattern = ".cs"; break; case AssemblyDefinition.UnityAssembly.UnityScriptFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScript: case AssemblyDefinition.UnityAssembly.UnityScriptEditor: pattern = ".js"; break; case AssemblyDefinition.UnityAssembly.BooFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: case AssemblyDefinition.UnityAssembly.Boo: case AssemblyDefinition.UnityAssembly.BooEditor: pattern = ".boo"; break; } switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditor: case AssemblyDefinition.UnityAssembly.UnityScriptEditor: case AssemblyDefinition.UnityAssembly.BooEditor: editor = true; break; } //var scripts = FindAssets("t:MonoScript"); var scripts = Directory.GetFiles("Assets", "*" + pattern, SearchOption.AllDirectories); var count = scripts.Length; if (assets == null) { assets = new List <string>(count); } for (var i = count; i-- > 0;) { var path = scripts[i]; // AssetDatabase.GUIDToAssetPath(scripts[i]); scripts[i] = path = path.Replace('\\', '/'); string lowerPath = path.ToLowerInvariant(); if (path.Contains("/.") || lowerPath.StartsWith("assets/webplayertemplates/", System.StringComparison.Ordinal)) { scripts[i] = scripts[--count]; continue; } scripts[i] = AssetDatabase.AssetPathToGUID(scripts[i]); var extension = Path.GetExtension(lowerPath); if (extension != pattern) { scripts[i] = scripts[--count]; continue; } var isFirstPass = lowerPath.StartsWith("assets/standard assets/", System.StringComparison.Ordinal) || lowerPath.StartsWith("assets/pro standard assets/", System.StringComparison.Ordinal) || lowerPath.StartsWith("assets/plugins/", System.StringComparison.Ordinal); if (firstPass != isFirstPass) { scripts[i] = scripts[--count]; continue; } var isEditor = false; if (lowerPath.StartsWith("assets/plugins/", System.StringComparison.Ordinal)) { isEditor = lowerPath.StartsWith("assets/plugins/editor/", System.StringComparison.Ordinal); } else { isEditor = lowerPath.Contains("/editor/"); } if (editor != isEditor) { scripts[i] = scripts[--count]; continue; } assets.Add(scripts[i]); } //var joined = string.Join(", ", scripts, 0, count); //Debug.Log(joined); }
static void FindAllAssemblyScripts(AssemblyDefinition.UnityAssembly assemblyId) { var editor = false; var firstPass = false; var pattern = ""; switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptFirstPass: case AssemblyDefinition.UnityAssembly.BooFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: firstPass = true; break; } switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.CSharp: case AssemblyDefinition.UnityAssembly.CSharpEditor: pattern = "*.cs"; break; case AssemblyDefinition.UnityAssembly.UnityScriptFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScript: case AssemblyDefinition.UnityAssembly.UnityScriptEditor: pattern = "*.js"; break; case AssemblyDefinition.UnityAssembly.BooFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: case AssemblyDefinition.UnityAssembly.Boo: case AssemblyDefinition.UnityAssembly.BooEditor: pattern = "*.boo"; break; } switch (assemblyId) { case AssemblyDefinition.UnityAssembly.CSharpEditorFirstPass: case AssemblyDefinition.UnityAssembly.UnityScriptEditorFirstPass: case AssemblyDefinition.UnityAssembly.BooEditorFirstPass: case AssemblyDefinition.UnityAssembly.CSharpEditor: case AssemblyDefinition.UnityAssembly.UnityScriptEditor: case AssemblyDefinition.UnityAssembly.BooEditor: editor = true; break; } var scripts = Directory.GetFiles("Assets", pattern, SearchOption.AllDirectories); var count = scripts.Length; if (assets == null) { assets = new List <string>(count); } for (var i = count; i-- > 0;) { var path = scripts[i]; scripts[i] = path = path.Replace('\\', '/'); path = path.ToLowerInvariant(); if (path.Contains("/.") || path.StartsWith("assets/webplayertemplates/")) { scripts[i] = scripts[--count]; continue; } var isFirstPass = path.StartsWith("assets/standard assets/") || path.StartsWith("assets/pro standard assets/") || path.StartsWith("assets/plugins/"); if (firstPass != isFirstPass) { scripts[i] = scripts[--count]; continue; } var isEditor = false; if (path.StartsWith("assets/plugins/")) { isEditor = path.StartsWith("assets/plugins/editor/"); } else { isEditor = path.Contains("/editor/"); } if (editor != isEditor) { scripts[i] = scripts[--count]; continue; } assets.Add(path); } //var joined = string.Join(", ", scripts, 0, count); //Debug.Log(joined); }