public static BuildProfile CreateAssetAtPath(string path)
        {
            BuildProfile asset = ScriptableObject.CreateInstance <BuildProfile>();

            asset.name = Path.GetFileName(path);
            AssetDatabase.CreateAsset(asset, path);
            return(asset);
        }
        void PopulateAssets()
        {
            var buildTemplates = AssetDatabase.FindAssets("t:BuildTemplate");
            var buildProfiles  = AssetDatabase.FindAssets("t:BuildProfile");
            var sceneLists     = AssetDatabase.FindAssets("t:SceneList");

            m_BuildTemplates = new Dictionary <string, List <BuildTemplate> >();
            m_BuildProfiles  = new List <BuildProfile>();
            m_SceneLists     = new List <SceneList>();


            foreach (var templateGUID in buildTemplates)
            {
                string        templatePath = AssetDatabase.GUIDToAssetPath(templateGUID);
                BuildTemplate template     = (BuildTemplate)AssetDatabase.LoadAssetAtPath(templatePath, typeof(BuildTemplate));
                if (!m_BuildTemplates.ContainsKey(template.Category))
                {
                    m_BuildTemplates.Add(template.Category, new List <BuildTemplate>());
                }

                m_BuildTemplates[template.Category].Add(template);
            }


            foreach (var profileGUID in buildProfiles)
            {
                string       profilePath = AssetDatabase.GUIDToAssetPath(profileGUID);
                BuildProfile profile     = (BuildProfile)AssetDatabase.LoadAssetAtPath(profilePath, typeof(BuildProfile));
                m_BuildProfiles.Add(profile);
            }

            foreach (var sceneListGUID in sceneLists)
            {
                string    sceneListPath = AssetDatabase.GUIDToAssetPath(sceneListGUID);
                SceneList sceneList     = (SceneList)AssetDatabase.LoadAssetAtPath(sceneListPath, typeof(SceneList));
                m_SceneLists.Add(sceneList);
            }
        }
        public override void Action(int instanceId, string pathName, string resourceFile)
        {
            BuildProfile asset = BuildProfileAssetFactory.CreateAssetAtPath(pathName);

            ProjectWindowUtil.ShowCreatedAsset(asset);
        }