예제 #1
0
        public void GroupAsset(string path, BundleNameBy nameBy = BundleNameBy.Filename)
        {
            var asset = ArrayUtility.Find(assets, assetBuild => assetBuild.path.Equals(path));

            if (asset != null)
            {
                asset.nameBy = nameBy;
                return;
            }
            ArrayUtility.Add(ref assets, new AssetBuild()
            {
                path   = path,
                nameBy = nameBy,
            });
        }
예제 #2
0
        /// <summary>
        /// 给资源打包分组
        /// </summary>
        /// <param name="nameBy"></param>
        public static void GroupAssets(BundleNameBy nameBy)
        {
            var rules     = GetBuildRules();
            var selection = Selection.GetFiltered <UnityEngine.Object>(SelectionMode.DeepAssets);

            foreach (var o in selection)
            {
                var path = AssetDatabase.GetAssetPath(o);
                if (string.IsNullOrEmpty(path) || Directory.Exists(path))
                {
                    continue;
                }
                rules.GroupAsset(path, nameBy);
            }
            UnityEditor.EditorUtility.SetDirty(rules);
            AssetDatabase.SaveAssets();

            Selection.activeObject = rules;
            UnityEditor.EditorUtility.FocusProjectWindow();
        }