diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs
index 3808c15..5f95fc5 100644
--- a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs
+++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs
@@ -40,11 +40,6 @@ namespace YooAsset.Editor
 		/// </summary>
 		public System.Type AssetType { private set; get; }
 
-		/// <summary>
-		/// 是否为着色器资源
-		/// </summary>
-		public bool IsShaderAsset { private set; get; }
-
 		/// <summary>
 		/// 资源的分类标签
 		/// </summary>
@@ -66,10 +61,6 @@ namespace YooAsset.Editor
 
 			AssetGUID = UnityEditor.AssetDatabase.AssetPathToGUID(assetPath);
 			AssetType = UnityEditor.AssetDatabase.GetMainAssetTypeAtPath(assetPath);
-			if (AssetType == typeof(UnityEngine.Shader) || AssetType == typeof(UnityEngine.ShaderVariantCollection))
-				IsShaderAsset = true;
-			else
-				IsShaderAsset = false;
 		}
 		public BuildAssetInfo(string assetPath)
 		{
@@ -79,10 +70,6 @@ namespace YooAsset.Editor
 
 			AssetGUID = UnityEditor.AssetDatabase.AssetPathToGUID(assetPath);
 			AssetType = UnityEditor.AssetDatabase.GetMainAssetTypeAtPath(assetPath);
-			if (AssetType == typeof(UnityEngine.Shader) || AssetType == typeof(UnityEngine.ShaderVariantCollection))
-				IsShaderAsset = true;
-			else
-				IsShaderAsset = false;
 		}
 
 
diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollector.cs b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollector.cs
index 3ea00a1..94e3ba1 100644
--- a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollector.cs
+++ b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollector.cs
@@ -279,20 +279,21 @@ namespace YooAsset.Editor
 		}
 		private string GetBundleName(CollectCommand command, AssetBundleCollectorGroup group, string assetPath)
 		{
-			System.Type assetType = AssetDatabase.GetMainAssetTypeAtPath(assetPath);
-			if (assetType == typeof(UnityEngine.Shader) || assetType == typeof(UnityEngine.ShaderVariantCollection))
+			if (command.AutoCollectShaders)
 			{
-				// 获取着色器打包规则结果
-				PackRuleResult packRuleResult = DefaultPackRule.CreateShadersPackRuleResult();
-				return packRuleResult.GetBundleName(command.PackageName, command.UniqueBundleName);
-			}
-			else
-			{
-				// 获取其它资源打包规则结果
-				IPackRule packRuleInstance = AssetBundleCollectorSettingData.GetPackRuleInstance(PackRuleName);
-				PackRuleResult packRuleResult = packRuleInstance.GetPackRuleResult(new PackRuleData(assetPath, CollectPath, group.GroupName, UserData));
-				return packRuleResult.GetBundleName(command.PackageName, command.UniqueBundleName);
+				System.Type assetType = AssetDatabase.GetMainAssetTypeAtPath(assetPath);
+				if (assetType == typeof(UnityEngine.Shader) || assetType == typeof(UnityEngine.ShaderVariantCollection))
+				{
+					// 获取着色器打包规则结果
+					PackRuleResult shaderPackRuleResult = DefaultPackRule.CreateShadersPackRuleResult();
+					return shaderPackRuleResult.GetBundleName(command.PackageName, command.UniqueBundleName);
+				}
 			}
+
+			// 获取其它资源打包规则结果
+			IPackRule packRuleInstance = AssetBundleCollectorSettingData.GetPackRuleInstance(PackRuleName);
+			PackRuleResult defaultPackRuleResult = packRuleInstance.GetPackRuleResult(new PackRuleData(assetPath, CollectPath, group.GroupName, UserData));
+			return defaultPackRuleResult.GetBundleName(command.PackageName, command.UniqueBundleName);
 		}
 		private List<string> GetAssetTags(AssetBundleCollectorGroup group)
 		{
diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorPackage.cs b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorPackage.cs
index 0a7cc1b..9e9fb9b 100644
--- a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorPackage.cs
+++ b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorPackage.cs
@@ -40,6 +40,11 @@ namespace YooAsset.Editor
 		/// </summary>
 		public bool IgnoreDefaultType = true;
 
+		/// <summary>
+		/// 自动收集所有着色器(所有着色器存储在一个资源包内)
+		/// </summary>
+		public bool AutoCollectShaders = true;
+
 		/// <summary>
 		/// 分组列表
 		/// </summary>
diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorSetting.cs b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorSetting.cs
index 7031e42..57d36ef 100644
--- a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorSetting.cs
+++ b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorSetting.cs
@@ -101,7 +101,12 @@ namespace YooAsset.Editor
 
 			// 创建资源收集命令
 			CollectCommand command = new CollectCommand(buildMode, packageName,
-				 package.EnableAddressable, package.LocationToLower, package.IncludeAssetGUID, package.IgnoreDefaultType, UniqueBundleName);
+				 package.EnableAddressable,
+				 package.LocationToLower,
+				 package.IncludeAssetGUID,
+				 package.IgnoreDefaultType,
+				 package.AutoCollectShaders,
+				 UniqueBundleName);
 
 			// 获取收集的资源集合
 			CollectResult collectResult = new CollectResult(command);
diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs
index 5e484af..88553a0 100644
--- a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs
+++ b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.cs
@@ -27,18 +27,20 @@ namespace YooAsset.Editor
 
 		private VisualElement _helpBoxContainer;
 
-		private VisualElement _setting1Container;
 		private Button _globalSettingsButton;
+		private Button _packageSettingsButton;
+
+		private VisualElement _setting1Container;
 		private Toggle _showPackageToogle;
 		private Toggle _showEditorAliasToggle;
 		private Toggle _uniqueBundleNameToogle;
 
-		private VisualElement _setting3Container;
-		private Button _packageSettingsButton;
+		private VisualElement _setting2Container;
 		private Toggle _enableAddressableToogle;
 		private Toggle _locationToLowerToogle;
 		private Toggle _includeAssetGUIDToogle;
 		private Toggle _ignoreDefaultTypeToogle;
+		private Toggle _autoCollectShadersToogle;
 
 		private VisualElement _packageContainer;
 		private ListView _packageListView;
@@ -91,10 +93,13 @@ namespace YooAsset.Editor
 				// 警示栏
 				_helpBoxContainer = root.Q("HelpBoxContainer");
 
-				// 公共设置相关
-				_setting1Container = root.Q("PublicContainer1");
 				_globalSettingsButton = root.Q<Button>("GlobalSettingsButton");
 				_globalSettingsButton.clicked += GlobalSettingsBtn_clicked;
+				_packageSettingsButton = root.Q<Button>("PackageSettingsButton");
+				_packageSettingsButton.clicked += PackageSettingsBtn_clicked;
+
+				// 公共设置相关
+				_setting1Container = root.Q("PublicContainer1");
 				_showPackageToogle = root.Q<Toggle>("ShowPackages");
 				_showPackageToogle.RegisterValueChangedCallback(evt =>
 				{
@@ -115,9 +120,7 @@ namespace YooAsset.Editor
 				});
 
 				// 包裹设置相关
-				_setting3Container = root.Q("PublicContainer3");
-				_packageSettingsButton = root.Q<Button>("PackageSettingsButton");
-				_packageSettingsButton.clicked += PackageSettingsBtn_clicked;
+				_setting2Container = root.Q("PublicContainer2");
 				_enableAddressableToogle = root.Q<Toggle>("EnableAddressable");
 				_enableAddressableToogle.RegisterValueChangedCallback(evt =>
 				{
@@ -162,6 +165,17 @@ namespace YooAsset.Editor
 						RefreshWindow();
 					}
 				});
+				_autoCollectShadersToogle = root.Q<Toggle>("AutoCollectShaders");
+				_autoCollectShadersToogle.RegisterValueChangedCallback(evt =>
+				{
+					var selectPackage = _packageListView.selectedItem as AssetBundleCollectorPackage;
+					if (selectPackage != null)
+					{
+						selectPackage.AutoCollectShaders = evt.newValue;
+						AssetBundleCollectorSettingData.ModifyPackage(selectPackage);
+						RefreshWindow();
+					}
+				});
 
 				// 配置修复按钮
 				var fixBtn = root.Q<Button>("FixButton");
@@ -458,17 +472,22 @@ namespace YooAsset.Editor
 			}
 			else
 			{
+				_showPackageSettings = false;
 				_packageSettingsButton.SetEnabled(false);
-				if(_packageListView.itemsSource.Count == 0)
+				if (_packageListView.itemsSource.Count == 0)
 					_packageSettingsButton.text = $"Not Found Any Package !";
 				else
 					_packageSettingsButton.text = $"Package Setting";
 			}
 
 			if (_showPackageSettings)
-				_setting3Container.style.display = DisplayStyle.Flex;
+			{
+				_setting2Container.style.display = DisplayStyle.Flex;
+			}
 			else
-				_setting3Container.style.display = DisplayStyle.None;
+			{
+				_setting2Container.style.display = DisplayStyle.None;
+			}
 		}
 		private void RefreshHelpBoxTips()
 		{
@@ -539,7 +558,6 @@ namespace YooAsset.Editor
 			{
 				_groupContainer.visible = false;
 				_collectorContainer.visible = false;
-				_showPackageSettings = false;
 			}
 			else
 			{
@@ -952,8 +970,14 @@ namespace YooAsset.Editor
 
 				try
 				{
-					CollectCommand command = new CollectCommand(EBuildMode.SimulateBuild, _packageNameTxt.value,
-						_enableAddressableToogle.value, _locationToLowerToogle.value, _includeAssetGUIDToogle.value, _ignoreDefaultTypeToogle.value, _uniqueBundleNameToogle.value);
+					CollectCommand command = new CollectCommand(EBuildMode.SimulateBuild,
+						_packageNameTxt.value,
+						_enableAddressableToogle.value,
+						_locationToLowerToogle.value,
+						_includeAssetGUIDToogle.value,
+						_ignoreDefaultTypeToogle.value,
+						_autoCollectShadersToogle.value,
+						_uniqueBundleNameToogle.value);
 					collector.CheckConfigError();
 					collectAssetInfos = collector.GetAllCollectAssets(command, group);
 				}
diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.uxml b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.uxml
index 07eb99c..537f911 100644
--- a/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.uxml
+++ b/Assets/YooAsset/Editor/AssetBundleCollector/AssetBundleCollectorWindow.uxml
@@ -8,7 +8,7 @@
     <ui:VisualElement name="PublicContainer" style="background-color: rgb(79, 79, 79); flex-direction: column; border-left-width: 5px; border-right-width: 5px; border-top-width: 5px; border-bottom-width: 5px;">
         <ui:VisualElement name="HelpBoxContainer" style="flex-grow: 1;" />
         <ui:VisualElement name="GlobalSettingsContainer">
-            <ui:Button text="Global Settings" display-tooltip-when-elided="true" name="GlobalSettingsButton" />
+            <ui:Button text="Global Settings" name="GlobalSettingsButton" />
             <ui:VisualElement name="PublicContainer1" style="flex-direction: row; flex-wrap: nowrap; height: 28px;">
                 <ui:Toggle label="Show Packages" name="ShowPackages" style="width: 196px; -unity-text-align: middle-left;" />
                 <ui:Toggle label="Show Editor Alias" name="ShowEditorAlias" style="width: 196px; -unity-text-align: middle-left;" />
@@ -17,11 +17,12 @@
         </ui:VisualElement>
         <ui:VisualElement name="PackageSettingsContainer">
             <ui:Button text="Package Settings" display-tooltip-when-elided="true" name="PackageSettingsButton" />
-            <ui:VisualElement name="PublicContainer3" style="flex-direction: row; flex-wrap: nowrap; height: 28px;">
+            <ui:VisualElement name="PublicContainer2" style="flex-direction: row; flex-wrap: nowrap; height: 28px;">
                 <ui:Toggle label="Enable Addressable" name="EnableAddressable" style="width: 196px; -unity-text-align: middle-left;" />
                 <ui:Toggle label="Location To Lower" name="LocationToLower" style="width: 196px; -unity-text-align: middle-left;" />
                 <ui:Toggle label="Include Asset GUID" name="IncludeAssetGUID" style="width: 196px; -unity-text-align: middle-left;" />
                 <ui:Toggle label="Ignore Default Type" name="IgnoreDefaultType" style="width: 196px; -unity-text-align: middle-left;" />
+                <ui:Toggle label="Auto Collect Shaders" name="AutoCollectShaders" value="true" style="width: 196px; -unity-text-align: middle-left;" />
             </ui:VisualElement>
         </ui:VisualElement>
     </ui:VisualElement>
diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/CollectCommand.cs b/Assets/YooAsset/Editor/AssetBundleCollector/CollectCommand.cs
index 19ae4cc..f83d196 100644
--- a/Assets/YooAsset/Editor/AssetBundleCollector/CollectCommand.cs
+++ b/Assets/YooAsset/Editor/AssetBundleCollector/CollectCommand.cs
@@ -33,6 +33,11 @@ namespace YooAsset.Editor
 		/// </summary>
 		public bool IncludeAssetGUID { private set; get; }
 
+		/// <summary>
+		/// 自动收集所有着色器
+		/// </summary>
+		public bool AutoCollectShaders { private set; get; }
+
 		/// <summary>
 		/// 资源包名唯一化
 		/// </summary>
@@ -44,7 +49,7 @@ namespace YooAsset.Editor
 		public string ShadersBundleName { private set; get; }
 
 
-		public CollectCommand(EBuildMode buildMode, string packageName, bool enableAddressable, bool locationToLower, bool includeAssetGUID, bool ignoreDefaultType, bool uniqueBundleName)
+		public CollectCommand(EBuildMode buildMode, string packageName, bool enableAddressable, bool locationToLower, bool includeAssetGUID, bool ignoreDefaultType, bool autoCollectShaders, bool uniqueBundleName)
 		{
 			BuildMode = buildMode;
 			PackageName = packageName;
@@ -52,6 +57,7 @@ namespace YooAsset.Editor
 			LocationToLower = locationToLower;
 			IncludeAssetGUID = includeAssetGUID;
 			IgnoreDefaultType = ignoreDefaultType;
+			AutoCollectShaders = autoCollectShaders;
 			UniqueBundleName = uniqueBundleName;
 
 			// 着色器统一全名称