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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }