首页 > 编程语言 > 详细

Unity- 小“东西”

时间:2020-05-21 18:46:12      阅读:51      评论:0      收藏:0      [点我收藏+]

菜单栏遍历处理预制体工具


    public class GameEditor : Editor
    {

        private static void ProcessPrefabs(Action<GameObject> doProcess)
        {
            List<GameObject> prefabs = new List<GameObject>();
            var resourcesPath = Application.dataPath;
            var absolutePaths = System.IO.Directory.GetFiles(resourcesPath, "*.prefab", System.IO.SearchOption.AllDirectories);
            for (int i = 0; i < absolutePaths.Length; i++)
            {
                EditorUtility.DisplayProgressBar("获取预制体……", "获取预制体中……", (float)i / absolutePaths.Length);

                string path = "Assets" + absolutePaths[i].Remove(0, resourcesPath.Length);
                path = path.Replace("\\", "/");
                GameObject prefab = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject;
                if (prefab != null)
                {
                    prefabs.Add(prefab);
                    doProcess(prefab);
                }
                else
                    Debug.Log("预制体不存在! " + path);
            }
            EditorUtility.ClearProgressBar(); 
        }
        [MenuItem("遍历文件夹预制体并处理")]
        static void ProcessPrefabs()
        {
            bool isDirty =false;
            ProcessPrefabs((prefab) =>
            {
                prefab.AddComponent<Animation>();
                EditorUtility.SetDirty(prefab);
                isDirty = true;
            });
            if(isDirty)
             AssetDatabase.SaveAssets();
            EditorUtility.DisplayDialog("tips", "完成了", "确定");
        }
         
    }

Unity- 小“东西”

原文:https://www.cnblogs.com/Jaysonhome/p/12932234.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!