Ejemplo n.º 1
0
        public static void Assemble()
        {
            var paths = Selection.objects.Select(obj => AssetDatabase.GetAssetPath(obj));

            var directories = paths.Where(path => AssetDatabase.IsValidFolder(path)).ToArray();
            var scripts = paths.Where(x => x.EndsWith("*.cs"))
                .Union(
                    AssetDatabase.FindAssets("t:script", directories)
                        .Select(guid => AssetDatabase.GUIDToAssetPath(guid)))
                .ToArray();

            string assemblyPath;
            using (new LockReloadAssemblyScope())
            using (new LockReloadAssetScope())
            {
                var settings = BuildSettings.FindOrCreateInstance();
                var composer = new Composer(settings);
                assemblyPath = composer.BuildScripts(
                    scripts,
                    Preference.GetAssemblyName(paths));

                AssetDatabase.SaveAssets();
            }

            EditorGUIUtility.PingObject(AssetDatabase.LoadAssetAtPath<Object>(assemblyPath));
        }
Ejemplo n.º 2
0
        public static void Disassemble()
        {
            var assemblyName = Path.GetFileNameWithoutExtension(
                AssetDatabase.GetAssetPath(Selection.activeObject));

            string[] scriptPaths;
            using (new LockReloadAssemblyScope())
            using (new LockReloadAssetScope())
            {
                var settings = BuildSettings.FindOrCreateInstance();
                var composer = new Composer(settings);
                scriptPaths = composer.RevertToScripts(settings, assemblyName);

                AssetDatabase.SaveAssets();
            }

            if (scriptPaths.Length == 1)
            {
                EditorGUIUtility.PingObject(AssetDatabase.LoadAssetAtPath<Object>(scriptPaths[0]));
            }
            else
            {
                Selection.objects = scriptPaths.Select(x => AssetDatabase.LoadAssetAtPath<Object>(x))
                    .ToArray();
            }
        }
Ejemplo n.º 3
0
 public static void SelectSettingsObject()
 {
     Selection.activeObject = BuildSettings.FindOrCreateInstance();
 }