Ver Fonte

Upgrade YooAsset (#553)

* Upgrade YooAsset
EP-Toushirou há 2 anos atrás
pai
commit
8ac958aad2
100 ficheiros alterados com 607 adições e 6053 exclusões
  1. 10 2
      Book/1.1运行指南.md
  2. 1 0
      Unity/Assets/Resources/YooAssetSettings.asset
  3. 297 27
      Unity/Assets/Scripts/Loader/Plugins/HybridCLR/Generated/AOTGenericReferences.cs
  4. 11 10
      Unity/Assets/Scripts/Loader/Plugins/HybridCLR/Generated/link.xml
  5. 49 67
      Unity/Assets/Scripts/Loader/Resource/ResourcesComponent.cs
  6. 1 1
      Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper.meta
  7. 22 0
      Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/BuildinFileManifest.cs
  8. 1 1
      Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/BuildinFileManifest.cs.meta
  9. 10 0
      Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsDefine.cs
  10. 1 1
      Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsDefine.cs.meta
  11. 177 0
      Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsHelper.cs
  12. 1 1
      Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsHelper.cs.meta
  13. 2 2
      Unity/Assets/Scripts/Loader/Unity.Loader.asmdef
  14. 24 25
      Unity/Assets/Scripts/ModelView/Client/Module/Resource/ResourcesLoaderComponent.cs
  15. 0 22
      Unity/Assets/Settings/AssetBundleBuilderSetting.asset
  16. 0 8
      Unity/Assets/Settings/AssetBundleBuilderSetting.asset.meta
  17. 0 1446
      Unity/Packages/YooAsset/CHANGELOG.md
  18. 0 7
      Unity/Packages/YooAsset/CHANGELOG.md.meta
  19. 0 8
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder.meta
  20. 0 112
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilder.cs
  21. 0 28
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderHelper.cs
  22. 0 49
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderSetting.cs
  23. 0 49
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderSettingData.cs
  24. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderSettingData.cs.meta
  25. 0 215
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderTools.cs
  26. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderTools.cs.meta
  27. 0 359
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.cs
  28. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.cs.meta
  29. 0 18
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.uxml
  30. 0 10
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.uxml.meta
  31. 0 37
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleSimulateBuilder.cs
  32. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleSimulateBuilder.cs.meta
  33. 0 213
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs
  34. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs.meta
  35. 0 220
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildBundleInfo.cs
  36. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildBundleInfo.cs.meta
  37. 0 108
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildMapContext.cs
  38. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildMapContext.cs.meta
  39. 0 125
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParameters.cs
  40. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParameters.cs.meta
  41. 0 145
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParametersContext.cs
  42. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParametersContext.cs.meta
  43. 0 8
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport.meta
  44. 0 77
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/BuildReport.cs
  45. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/BuildReport.cs.meta
  46. 0 51
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportAssetInfo.cs
  47. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportAssetInfo.cs.meta
  48. 0 72
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportBundleInfo.cs
  49. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportBundleInfo.cs.meta
  50. 0 36
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportRedundancyInfo.cs
  51. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportRedundancyInfo.cs.meta
  52. 0 102
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportSummary.cs
  53. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportSummary.cs.meta
  54. 0 8
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem.meta
  55. 0 50
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildContext.cs
  56. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildContext.cs.meta
  57. 0 33
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildLogger.cs
  58. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildLogger.cs.meta
  59. 0 29
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildResult.cs
  60. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildResult.cs.meta
  61. 0 72
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildRunner.cs
  62. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildRunner.cs.meta
  63. 0 8
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IBuildTask.cs
  64. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IBuildTask.cs.meta
  65. 0 7
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IContextObject.cs
  66. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IContextObject.cs.meta
  67. 0 18
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/TaskAttribute.cs
  68. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/TaskAttribute.cs.meta
  69. 0 8
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks.meta
  70. 0 52
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/SBPBuildTasks.cs
  71. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/SBPBuildTasks.cs.meta
  72. 0 50
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding.cs
  73. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding.cs.meta
  74. 0 58
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding_SBP.cs
  75. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding_SBP.cs.meta
  76. 0 100
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyBuildinFiles.cs
  77. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyBuildinFiles.cs.meta
  78. 0 44
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyRawFile.cs
  79. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyRawFile.cs.meta
  80. 0 384
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateManifest.cs
  81. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateManifest.cs.meta
  82. 0 79
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreatePackage.cs
  83. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreatePackage.cs.meta
  84. 0 229
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateReport.cs
  85. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateReport.cs.meta
  86. 0 67
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskEncryption.cs
  87. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskEncryption.cs.meta
  88. 0 229
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskGetBuildMap.cs
  89. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskGetBuildMap.cs.meta
  90. 0 106
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskPrepare.cs
  91. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskPrepare.cs.meta
  92. 0 119
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskUpdateBundleInfo.cs
  93. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskUpdateBundleInfo.cs.meta
  94. 0 137
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult.cs
  95. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult.cs.meta
  96. 0 68
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult_SBP.cs
  97. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult_SBP.cs.meta
  98. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/DefaultEncryption.cs
  99. 0 11
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/DefaultEncryption.cs.meta
  100. 0 29
      Unity/Packages/YooAsset/Editor/AssetBundleBuilder/EBuildMode.cs

+ 10 - 2
Book/1.1运行指南.md

@@ -35,11 +35,19 @@
 
 
 4. 点击HybridCLR -> CopyAotDlls,这一步会把需要补充元数据的dll复制到'Assets/Bundles/AotDlls'目录
 4. 点击HybridCLR -> CopyAotDlls,这一步会把需要补充元数据的dll复制到'Assets/Bundles/AotDlls'目录
 
 
-5. 打开YooAsset菜单 -> 点击AssetBundle Builder -> 点击下拉框'Copy Buildin File Option' -> 选择'Clear And Copy All' -> 点击'构建'
+5. 打开YooAsset -> AssetBundle Builder窗口,按照以下步骤操作:
+
+   ①BuildPipeline : '**ScriptableBuildPipeline**'
+
+   ②BuildMode : '**IncrementalBuild**'
+
+   ③CopyBuildinFileOption : '**ClearAndCopyAll**'
+
+   ④点击'**Click Build**'
 
 
 6. Assets/Resources/GlobalConfig EPlayMode选择'HostPlayMode', 打开Unity菜单 -> ET -> BuildTool,点击'BuildPackage',Windows下生成的exe在'ET/Release'里面
 6. Assets/Resources/GlobalConfig EPlayMode选择'HostPlayMode', 打开Unity菜单 -> ET -> BuildTool,点击'BuildPackage',Windows下生成的exe在'ET/Release'里面
 
 
-另:**请自行研究**YooAsset包管理库的使用方式([YooAsset官网](https://www.yooasset.com/)),若需要升级请自行替换'ET/Unity/Packages/YooAsset'
+另:**请自行研究**YooAsset包管理库的使用方式([YooAsset官网](https://www.yooasset.com/))
 
 
 # 热重载
 # 热重载
 1. 若需要体验此功能,需要在Unity菜单 -> Edit -> Preferences -> General窗口的 'ScriptChangesWhilePlaying' 中 选择 '**RecompileAfterFinishedPlaying**'
 1. 若需要体验此功能,需要在Unity菜单 -> Edit -> Preferences -> General窗口的 'ScriptChangesWhilePlaying' 中 选择 '**RecompileAfterFinishedPlaying**'

+ 1 - 0
Unity/Assets/Resources/YooAssetSettings.asset

@@ -13,3 +13,4 @@ MonoBehaviour:
   m_Name: YooAssetSettings
   m_Name: YooAssetSettings
   m_EditorClassIdentifier: 
   m_EditorClassIdentifier: 
   ManifestFileName: PackageManifest
   ManifestFileName: PackageManifest
+  DefaultYooFolderName: Bundles

+ 297 - 27
Unity/Assets/Scripts/Loader/Plugins/HybridCLR/Generated/AOTGenericReferences.cs

@@ -89,7 +89,100 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 	// ET.LateUpdateSystem<object>
 	// ET.LateUpdateSystem<object>
 	// ET.ListComponent<Unity.Mathematics.float3>
 	// ET.ListComponent<Unity.Mathematics.float3>
 	// ET.Singleton<object>
 	// ET.Singleton<object>
-	// ET.StateMachineWrap<object>
+	// ET.StateMachineWrap<ET.Client.A2NetClient_MessageHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.A2NetClient_RequestHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.AI_Attack.<Execute>d__1>
+	// ET.StateMachineWrap<ET.Client.AI_XunLuo.<Execute>d__1>
+	// ET.StateMachineWrap<ET.Client.AfterCreateClientScene_AddComponent.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.AfterCreateClientScene_LSAddComponent.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.AfterCreateCurrentScene_AddComponent.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.AfterUnitCreate_CreateUnitView.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.AppStartInitFinish_CreateLoginUI.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.AppStartInitFinish_CreateUILSLogin.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.ChangePosition_SyncGameObjectPos.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.ChangeRotation_SyncGameObjectRotation.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.ClientSenderCompnentSystem.<Call>d__5>
+	// ET.StateMachineWrap<ET.Client.ClientSenderCompnentSystem.<LoginAsync>d__3>
+	// ET.StateMachineWrap<ET.Client.ClientSenderCompnentSystem.<RemoveFiberAsync>d__2>
+	// ET.StateMachineWrap<ET.Client.EnterMapHelper.<EnterMapAsync>d__0>
+	// ET.StateMachineWrap<ET.Client.EnterMapHelper.<Match>d__1>
+	// ET.StateMachineWrap<ET.Client.EntryEvent3_InitClient.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.FiberInit_NetClient.<Handle>d__0>
+	// ET.StateMachineWrap<ET.Client.G2C_ReconnectHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.HttpClientHelper.<Get>d__0>
+	// ET.StateMachineWrap<ET.Client.LSSceneChangeHelper.<SceneChangeTo>d__0>
+	// ET.StateMachineWrap<ET.Client.LSSceneChangeHelper.<SceneChangeToReconnect>d__2>
+	// ET.StateMachineWrap<ET.Client.LSSceneChangeHelper.<SceneChangeToReplay>d__1>
+	// ET.StateMachineWrap<ET.Client.LSSceneChangeStart_AddComponent.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.LSSceneInitFinish_Finish.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.LSUnitViewComponentSystem.<InitAsync>d__2>
+	// ET.StateMachineWrap<ET.Client.LoginFinish_CreateLobbyUI.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.LoginFinish_CreateUILSLobby.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.LoginFinish_RemoveLoginUI.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.LoginFinish_RemoveUILSLogin.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.LoginHelper.<Login>d__0>
+	// ET.StateMachineWrap<ET.Client.M2C_CreateMyUnitHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.M2C_CreateUnitsHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.M2C_PathfindingResultHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.M2C_RemoveUnitsHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.M2C_StartSceneChangeHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.M2C_StopHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.Main2NetClient_LoginHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.Match2G_NotifyMatchSuccessHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.MoveHelper.<MoveToAsync>d__0>
+	// ET.StateMachineWrap<ET.Client.MoveHelper.<MoveToAsync>d__1>
+	// ET.StateMachineWrap<ET.Client.NetClient2Main_SessionDisposeHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.OneFrameInputsHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.PingComponentSystem.<PingAsync>d__2>
+	// ET.StateMachineWrap<ET.Client.ResourcesLoaderComponentSystem.<LoadAllAssetsAsync>d__4<object>>
+	// ET.StateMachineWrap<ET.Client.ResourcesLoaderComponentSystem.<LoadAssetAsync>d__3<object>>
+	// ET.StateMachineWrap<ET.Client.ResourcesLoaderComponentSystem.<LoadSceneAsync>d__5>
+	// ET.StateMachineWrap<ET.Client.Room2C_AdjustUpdateTimeHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.Room2C_CheckHashFailHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.Room2C_EnterMapHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.RouterAddressComponentSystem.<GetAllRouter>d__2>
+	// ET.StateMachineWrap<ET.Client.RouterAddressComponentSystem.<Init>d__1>
+	// ET.StateMachineWrap<ET.Client.RouterAddressComponentSystem.<WaitTenMinGetAllRouter>d__3>
+	// ET.StateMachineWrap<ET.Client.RouterCheckComponentSystem.<CheckAsync>d__1>
+	// ET.StateMachineWrap<ET.Client.RouterHelper.<Connect>d__2>
+	// ET.StateMachineWrap<ET.Client.RouterHelper.<CreateRouterSession>d__0>
+	// ET.StateMachineWrap<ET.Client.RouterHelper.<GetRouterAddress>d__1>
+	// ET.StateMachineWrap<ET.Client.SceneChangeFinishEvent_CreateUIHelp.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.SceneChangeHelper.<SceneChangeTo>d__0>
+	// ET.StateMachineWrap<ET.Client.SceneChangeStart_AddComponent.<Run>d__0>
+	// ET.StateMachineWrap<ET.Client.UIComponentSystem.<Create>d__1>
+	// ET.StateMachineWrap<ET.Client.UIGlobalComponentSystem.<OnCreate>d__1>
+	// ET.StateMachineWrap<ET.Client.UIHelpEvent.<OnCreate>d__0>
+	// ET.StateMachineWrap<ET.Client.UIHelper.<Create>d__0>
+	// ET.StateMachineWrap<ET.Client.UIHelper.<Remove>d__1>
+	// ET.StateMachineWrap<ET.Client.UILSLobbyComponentSystem.<EnterMap>d__1>
+	// ET.StateMachineWrap<ET.Client.UILSLobbyEvent.<OnCreate>d__0>
+	// ET.StateMachineWrap<ET.Client.UILSLoginEvent.<OnCreate>d__0>
+	// ET.StateMachineWrap<ET.Client.UILSRoomEvent.<OnCreate>d__0>
+	// ET.StateMachineWrap<ET.Client.UILobbyComponentSystem.<EnterMap>d__1>
+	// ET.StateMachineWrap<ET.Client.UILobbyEvent.<OnCreate>d__0>
+	// ET.StateMachineWrap<ET.Client.UILoginEvent.<OnCreate>d__0>
+	// ET.StateMachineWrap<ET.ConsoleComponentSystem.<Start>d__1>
+	// ET.StateMachineWrap<ET.Entry.<StartAsync>d__2>
+	// ET.StateMachineWrap<ET.EntryEvent1_InitShare.<Run>d__0>
+	// ET.StateMachineWrap<ET.FiberInit_Main.<Handle>d__0>
+	// ET.StateMachineWrap<ET.MailBoxType_OrderedMessageHandler.<HandleInner>d__1>
+	// ET.StateMachineWrap<ET.MailBoxType_UnOrderedMessageHandler.<HandleAsync>d__1>
+	// ET.StateMachineWrap<ET.MessageHandler.<Handle>d__1<object,object,object>>
+	// ET.StateMachineWrap<ET.MessageHandler.<Handle>d__1<object,object>>
+	// ET.StateMachineWrap<ET.MessageSessionHandler.<HandleAsync>d__2<object,object>>
+	// ET.StateMachineWrap<ET.MessageSessionHandler.<HandleAsync>d__2<object>>
+	// ET.StateMachineWrap<ET.MoveComponentSystem.<MoveToAsync>d__5>
+	// ET.StateMachineWrap<ET.NumericChangeEvent_NotifyWatcher.<Run>d__0>
+	// ET.StateMachineWrap<ET.ObjectWaitSystem.<>c__DisplayClass5_0.<<Wait>g__WaitTimeout|0>d<object>>
+	// ET.StateMachineWrap<ET.ObjectWaitSystem.<Wait>d__4<object>>
+	// ET.StateMachineWrap<ET.ObjectWaitSystem.<Wait>d__5<object>>
+	// ET.StateMachineWrap<ET.ReloadConfigConsoleHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.ReloadDllConsoleHandler.<Run>d__0>
+	// ET.StateMachineWrap<ET.RpcInfo.<Wait>d__7>
+	// ET.StateMachineWrap<ET.SessionSystem.<>c__DisplayClass4_0.<<Call>g__Timeout|0>d>
+	// ET.StateMachineWrap<ET.SessionSystem.<Call>d__3>
+	// ET.StateMachineWrap<ET.SessionSystem.<Call>d__4>
 	// ET.StructBsonSerialize<ET.LSInput>
 	// ET.StructBsonSerialize<ET.LSInput>
 	// ET.StructBsonSerialize<TrueSync.FP>
 	// ET.StructBsonSerialize<TrueSync.FP>
 	// ET.StructBsonSerialize<TrueSync.TSQuaternion>
 	// ET.StructBsonSerialize<TrueSync.TSQuaternion>
@@ -477,36 +570,213 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 
 
 	public void RefMethods()
 	public void RefMethods()
 	{
 	{
-		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,object>(ET.ETTaskCompleted&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,object>(System.Runtime.CompilerServices.TaskAwaiter&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<object>,object>(System.Runtime.CompilerServices.TaskAwaiter<object>&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,object>(object&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<System.ValueTuple<uint,object>>.AwaitUnsafeOnCompleted<object,object>(object&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<byte>.AwaitUnsafeOnCompleted<object,object>(object&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<object,object>(object&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<long>.AwaitUnsafeOnCompleted<object,object>(object&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,object>(ET.ETTaskCompleted&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,object>(System.Runtime.CompilerServices.TaskAwaiter&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<object>,object>(System.Runtime.CompilerServices.TaskAwaiter<object>&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,object>(object&,object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<uint>.AwaitUnsafeOnCompleted<object,object>(object&,object&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.A2NetClient_MessageHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.A2NetClient_MessageHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.AfterCreateClientScene_AddComponent.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.AfterCreateClientScene_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.AfterCreateClientScene_LSAddComponent.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.AfterCreateClientScene_LSAddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.AfterCreateCurrentScene_AddComponent.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.AfterCreateCurrentScene_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.AfterUnitCreate_CreateUnitView.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.AfterUnitCreate_CreateUnitView.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.ChangePosition_SyncGameObjectPos.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.ChangePosition_SyncGameObjectPos.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.ChangeRotation_SyncGameObjectRotation.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.ChangeRotation_SyncGameObjectRotation.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.FiberInit_NetClient.<Handle>d__0>(ET.ETTaskCompleted&,ET.Client.FiberInit_NetClient.<Handle>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.G2C_ReconnectHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.G2C_ReconnectHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.LSSceneInitFinish_Finish.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.LSSceneInitFinish_Finish.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.M2C_CreateMyUnitHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.M2C_CreateMyUnitHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.M2C_CreateUnitsHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.M2C_CreateUnitsHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.M2C_RemoveUnitsHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.M2C_RemoveUnitsHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.M2C_StopHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.M2C_StopHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.NetClient2Main_SessionDisposeHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.NetClient2Main_SessionDisposeHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.OneFrameInputsHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.OneFrameInputsHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.Room2C_AdjustUpdateTimeHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.Room2C_AdjustUpdateTimeHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.Room2C_CheckHashFailHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.Room2C_CheckHashFailHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.Room2C_EnterMapHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.Client.Room2C_EnterMapHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.UIHelper.<Remove>d__1>(ET.ETTaskCompleted&,ET.Client.UIHelper.<Remove>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.EntryEvent1_InitShare.<Run>d__0>(ET.ETTaskCompleted&,ET.EntryEvent1_InitShare.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.NumericChangeEvent_NotifyWatcher.<Run>d__0>(ET.ETTaskCompleted&,ET.NumericChangeEvent_NotifyWatcher.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.ReloadConfigConsoleHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.ReloadConfigConsoleHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.ReloadDllConsoleHandler.<Run>d__0>(ET.ETTaskCompleted&,ET.ReloadDllConsoleHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,ET.Client.ResourcesLoaderComponentSystem.<LoadSceneAsync>d__5>(System.Runtime.CompilerServices.TaskAwaiter&,ET.Client.ResourcesLoaderComponentSystem.<LoadSceneAsync>d__5&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<object>,ET.ConsoleComponentSystem.<Start>d__1>(System.Runtime.CompilerServices.TaskAwaiter<object>&,ET.ConsoleComponentSystem.<Start>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.A2NetClient_RequestHandler.<Run>d__0>(object&,ET.Client.A2NetClient_RequestHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.AI_Attack.<Execute>d__1>(object&,ET.Client.AI_Attack.<Execute>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.AI_XunLuo.<Execute>d__1>(object&,ET.Client.AI_XunLuo.<Execute>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.AfterUnitCreate_CreateUnitView.<Run>d__0>(object&,ET.Client.AfterUnitCreate_CreateUnitView.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.AppStartInitFinish_CreateLoginUI.<Run>d__0>(object&,ET.Client.AppStartInitFinish_CreateLoginUI.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.AppStartInitFinish_CreateUILSLogin.<Run>d__0>(object&,ET.Client.AppStartInitFinish_CreateUILSLogin.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.ClientSenderCompnentSystem.<RemoveFiberAsync>d__2>(object&,ET.Client.ClientSenderCompnentSystem.<RemoveFiberAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.EnterMapHelper.<EnterMapAsync>d__0>(object&,ET.Client.EnterMapHelper.<EnterMapAsync>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.EnterMapHelper.<Match>d__1>(object&,ET.Client.EnterMapHelper.<Match>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.EntryEvent3_InitClient.<Run>d__0>(object&,ET.Client.EntryEvent3_InitClient.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.G2C_ReconnectHandler.<Run>d__0>(object&,ET.Client.G2C_ReconnectHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LSSceneChangeHelper.<SceneChangeTo>d__0>(object&,ET.Client.LSSceneChangeHelper.<SceneChangeTo>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LSSceneChangeHelper.<SceneChangeToReconnect>d__2>(object&,ET.Client.LSSceneChangeHelper.<SceneChangeToReconnect>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LSSceneChangeHelper.<SceneChangeToReplay>d__1>(object&,ET.Client.LSSceneChangeHelper.<SceneChangeToReplay>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LSSceneChangeStart_AddComponent.<Run>d__0>(object&,ET.Client.LSSceneChangeStart_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LSSceneInitFinish_Finish.<Run>d__0>(object&,ET.Client.LSSceneInitFinish_Finish.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LSUnitViewComponentSystem.<InitAsync>d__2>(object&,ET.Client.LSUnitViewComponentSystem.<InitAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LoginFinish_CreateLobbyUI.<Run>d__0>(object&,ET.Client.LoginFinish_CreateLobbyUI.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LoginFinish_CreateUILSLobby.<Run>d__0>(object&,ET.Client.LoginFinish_CreateUILSLobby.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LoginFinish_RemoveLoginUI.<Run>d__0>(object&,ET.Client.LoginFinish_RemoveLoginUI.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LoginFinish_RemoveUILSLogin.<Run>d__0>(object&,ET.Client.LoginFinish_RemoveUILSLogin.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.LoginHelper.<Login>d__0>(object&,ET.Client.LoginHelper.<Login>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.M2C_PathfindingResultHandler.<Run>d__0>(object&,ET.Client.M2C_PathfindingResultHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.M2C_StartSceneChangeHandler.<Run>d__0>(object&,ET.Client.M2C_StartSceneChangeHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.Main2NetClient_LoginHandler.<Run>d__0>(object&,ET.Client.Main2NetClient_LoginHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.Match2G_NotifyMatchSuccessHandler.<Run>d__0>(object&,ET.Client.Match2G_NotifyMatchSuccessHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.MoveHelper.<MoveToAsync>d__1>(object&,ET.Client.MoveHelper.<MoveToAsync>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.PingComponentSystem.<PingAsync>d__2>(object&,ET.Client.PingComponentSystem.<PingAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.ResourcesLoaderComponentSystem.<LoadSceneAsync>d__5>(object&,ET.Client.ResourcesLoaderComponentSystem.<LoadSceneAsync>d__5&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.RouterAddressComponentSystem.<GetAllRouter>d__2>(object&,ET.Client.RouterAddressComponentSystem.<GetAllRouter>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.RouterAddressComponentSystem.<Init>d__1>(object&,ET.Client.RouterAddressComponentSystem.<Init>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.RouterAddressComponentSystem.<WaitTenMinGetAllRouter>d__3>(object&,ET.Client.RouterAddressComponentSystem.<WaitTenMinGetAllRouter>d__3&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.RouterCheckComponentSystem.<CheckAsync>d__1>(object&,ET.Client.RouterCheckComponentSystem.<CheckAsync>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.SceneChangeFinishEvent_CreateUIHelp.<Run>d__0>(object&,ET.Client.SceneChangeFinishEvent_CreateUIHelp.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.SceneChangeHelper.<SceneChangeTo>d__0>(object&,ET.Client.SceneChangeHelper.<SceneChangeTo>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.SceneChangeStart_AddComponent.<Run>d__0>(object&,ET.Client.SceneChangeStart_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.UILSLobbyComponentSystem.<EnterMap>d__1>(object&,ET.Client.UILSLobbyComponentSystem.<EnterMap>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Client.UILobbyComponentSystem.<EnterMap>d__1>(object&,ET.Client.UILobbyComponentSystem.<EnterMap>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.ConsoleComponentSystem.<Start>d__1>(object&,ET.ConsoleComponentSystem.<Start>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.Entry.<StartAsync>d__2>(object&,ET.Entry.<StartAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.FiberInit_Main.<Handle>d__0>(object&,ET.FiberInit_Main.<Handle>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.MailBoxType_OrderedMessageHandler.<HandleInner>d__1>(object&,ET.MailBoxType_OrderedMessageHandler.<HandleInner>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.MailBoxType_UnOrderedMessageHandler.<HandleAsync>d__1>(object&,ET.MailBoxType_UnOrderedMessageHandler.<HandleAsync>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.MessageHandler.<Handle>d__1<object,object,object>>(object&,ET.MessageHandler.<Handle>d__1<object,object,object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.MessageHandler.<Handle>d__1<object,object>>(object&,ET.MessageHandler.<Handle>d__1<object,object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.MessageSessionHandler.<HandleAsync>d__2<object,object>>(object&,ET.MessageSessionHandler.<HandleAsync>d__2<object,object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.MessageSessionHandler.<HandleAsync>d__2<object>>(object&,ET.MessageSessionHandler.<HandleAsync>d__2<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.ObjectWaitSystem.<>c__DisplayClass5_0.<<Wait>g__WaitTimeout|0>d<object>>(object&,ET.ObjectWaitSystem.<>c__DisplayClass5_0.<<Wait>g__WaitTimeout|0>d<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.ReloadConfigConsoleHandler.<Run>d__0>(object&,ET.ReloadConfigConsoleHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<object,ET.SessionSystem.<>c__DisplayClass4_0.<<Call>g__Timeout|0>d>(object&,ET.SessionSystem.<>c__DisplayClass4_0.<<Call>g__Timeout|0>d&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<System.ValueTuple<uint,object>>.AwaitUnsafeOnCompleted<object,ET.Client.RouterHelper.<GetRouterAddress>d__1>(object&,ET.Client.RouterHelper.<GetRouterAddress>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<byte>.AwaitUnsafeOnCompleted<object,ET.MoveComponentSystem.<MoveToAsync>d__5>(object&,ET.MoveComponentSystem.<MoveToAsync>d__5&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<object,ET.Client.MoveHelper.<MoveToAsync>d__0>(object&,ET.Client.MoveHelper.<MoveToAsync>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<long>.AwaitUnsafeOnCompleted<object,ET.Client.ClientSenderCompnentSystem.<LoginAsync>d__3>(object&,ET.Client.ClientSenderCompnentSystem.<LoginAsync>d__3&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<ET.ETTaskCompleted,ET.Client.UILobbyEvent.<OnCreate>d__0>(ET.ETTaskCompleted&,ET.Client.UILobbyEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,ET.Client.ResourcesLoaderComponentSystem.<LoadAllAssetsAsync>d__4<object>>(System.Runtime.CompilerServices.TaskAwaiter&,ET.Client.ResourcesLoaderComponentSystem.<LoadAllAssetsAsync>d__4<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,ET.Client.ResourcesLoaderComponentSystem.<LoadAssetAsync>d__3<object>>(System.Runtime.CompilerServices.TaskAwaiter&,ET.Client.ResourcesLoaderComponentSystem.<LoadAssetAsync>d__3<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<object>,ET.Client.HttpClientHelper.<Get>d__0>(System.Runtime.CompilerServices.TaskAwaiter<object>&,ET.Client.HttpClientHelper.<Get>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.ClientSenderCompnentSystem.<Call>d__5>(object&,ET.Client.ClientSenderCompnentSystem.<Call>d__5&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.ResourcesLoaderComponentSystem.<LoadAllAssetsAsync>d__4<object>>(object&,ET.Client.ResourcesLoaderComponentSystem.<LoadAllAssetsAsync>d__4<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.ResourcesLoaderComponentSystem.<LoadAssetAsync>d__3<object>>(object&,ET.Client.ResourcesLoaderComponentSystem.<LoadAssetAsync>d__3<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.RouterHelper.<CreateRouterSession>d__0>(object&,ET.Client.RouterHelper.<CreateRouterSession>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UIComponentSystem.<Create>d__1>(object&,ET.Client.UIComponentSystem.<Create>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UIGlobalComponentSystem.<OnCreate>d__1>(object&,ET.Client.UIGlobalComponentSystem.<OnCreate>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UIHelpEvent.<OnCreate>d__0>(object&,ET.Client.UIHelpEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UIHelper.<Create>d__0>(object&,ET.Client.UIHelper.<Create>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UILSLobbyEvent.<OnCreate>d__0>(object&,ET.Client.UILSLobbyEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UILSLoginEvent.<OnCreate>d__0>(object&,ET.Client.UILSLoginEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UILSRoomEvent.<OnCreate>d__0>(object&,ET.Client.UILSRoomEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UILobbyEvent.<OnCreate>d__0>(object&,ET.Client.UILobbyEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.Client.UILoginEvent.<OnCreate>d__0>(object&,ET.Client.UILoginEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.ObjectWaitSystem.<Wait>d__4<object>>(object&,ET.ObjectWaitSystem.<Wait>d__4<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.ObjectWaitSystem.<Wait>d__5<object>>(object&,ET.ObjectWaitSystem.<Wait>d__5<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.RpcInfo.<Wait>d__7>(object&,ET.RpcInfo.<Wait>d__7&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.SessionSystem.<Call>d__3>(object&,ET.SessionSystem.<Call>d__3&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<object,ET.SessionSystem.<Call>d__4>(object&,ET.SessionSystem.<Call>d__4&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<uint>.AwaitUnsafeOnCompleted<object,ET.Client.RouterHelper.<Connect>d__2>(object&,ET.Client.RouterHelper.<Connect>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.A2NetClient_MessageHandler.<Run>d__0>(ET.Client.A2NetClient_MessageHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.A2NetClient_RequestHandler.<Run>d__0>(ET.Client.A2NetClient_RequestHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AI_Attack.<Execute>d__1>(ET.Client.AI_Attack.<Execute>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AI_XunLuo.<Execute>d__1>(ET.Client.AI_XunLuo.<Execute>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AfterCreateClientScene_AddComponent.<Run>d__0>(ET.Client.AfterCreateClientScene_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AfterCreateClientScene_LSAddComponent.<Run>d__0>(ET.Client.AfterCreateClientScene_LSAddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AfterCreateCurrentScene_AddComponent.<Run>d__0>(ET.Client.AfterCreateCurrentScene_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AfterUnitCreate_CreateUnitView.<Run>d__0>(ET.Client.AfterUnitCreate_CreateUnitView.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AppStartInitFinish_CreateLoginUI.<Run>d__0>(ET.Client.AppStartInitFinish_CreateLoginUI.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.AppStartInitFinish_CreateUILSLogin.<Run>d__0>(ET.Client.AppStartInitFinish_CreateUILSLogin.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.ChangePosition_SyncGameObjectPos.<Run>d__0>(ET.Client.ChangePosition_SyncGameObjectPos.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.ChangeRotation_SyncGameObjectRotation.<Run>d__0>(ET.Client.ChangeRotation_SyncGameObjectRotation.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.ClientSenderCompnentSystem.<RemoveFiberAsync>d__2>(ET.Client.ClientSenderCompnentSystem.<RemoveFiberAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.EnterMapHelper.<EnterMapAsync>d__0>(ET.Client.EnterMapHelper.<EnterMapAsync>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.EnterMapHelper.<Match>d__1>(ET.Client.EnterMapHelper.<Match>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.EntryEvent3_InitClient.<Run>d__0>(ET.Client.EntryEvent3_InitClient.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.FiberInit_NetClient.<Handle>d__0>(ET.Client.FiberInit_NetClient.<Handle>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.G2C_ReconnectHandler.<Run>d__0>(ET.Client.G2C_ReconnectHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LSSceneChangeHelper.<SceneChangeTo>d__0>(ET.Client.LSSceneChangeHelper.<SceneChangeTo>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LSSceneChangeHelper.<SceneChangeToReconnect>d__2>(ET.Client.LSSceneChangeHelper.<SceneChangeToReconnect>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LSSceneChangeHelper.<SceneChangeToReplay>d__1>(ET.Client.LSSceneChangeHelper.<SceneChangeToReplay>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LSSceneChangeStart_AddComponent.<Run>d__0>(ET.Client.LSSceneChangeStart_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LSSceneInitFinish_Finish.<Run>d__0>(ET.Client.LSSceneInitFinish_Finish.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LSUnitViewComponentSystem.<InitAsync>d__2>(ET.Client.LSUnitViewComponentSystem.<InitAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LoginFinish_CreateLobbyUI.<Run>d__0>(ET.Client.LoginFinish_CreateLobbyUI.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LoginFinish_CreateUILSLobby.<Run>d__0>(ET.Client.LoginFinish_CreateUILSLobby.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LoginFinish_RemoveLoginUI.<Run>d__0>(ET.Client.LoginFinish_RemoveLoginUI.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LoginFinish_RemoveUILSLogin.<Run>d__0>(ET.Client.LoginFinish_RemoveUILSLogin.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.LoginHelper.<Login>d__0>(ET.Client.LoginHelper.<Login>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.M2C_CreateMyUnitHandler.<Run>d__0>(ET.Client.M2C_CreateMyUnitHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.M2C_CreateUnitsHandler.<Run>d__0>(ET.Client.M2C_CreateUnitsHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.M2C_PathfindingResultHandler.<Run>d__0>(ET.Client.M2C_PathfindingResultHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.M2C_RemoveUnitsHandler.<Run>d__0>(ET.Client.M2C_RemoveUnitsHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.M2C_StartSceneChangeHandler.<Run>d__0>(ET.Client.M2C_StartSceneChangeHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.M2C_StopHandler.<Run>d__0>(ET.Client.M2C_StopHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.Main2NetClient_LoginHandler.<Run>d__0>(ET.Client.Main2NetClient_LoginHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.Match2G_NotifyMatchSuccessHandler.<Run>d__0>(ET.Client.Match2G_NotifyMatchSuccessHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.MoveHelper.<MoveToAsync>d__1>(ET.Client.MoveHelper.<MoveToAsync>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.NetClient2Main_SessionDisposeHandler.<Run>d__0>(ET.Client.NetClient2Main_SessionDisposeHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.OneFrameInputsHandler.<Run>d__0>(ET.Client.OneFrameInputsHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.PingComponentSystem.<PingAsync>d__2>(ET.Client.PingComponentSystem.<PingAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.ResourcesLoaderComponentSystem.<LoadSceneAsync>d__5>(ET.Client.ResourcesLoaderComponentSystem.<LoadSceneAsync>d__5&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.Room2C_AdjustUpdateTimeHandler.<Run>d__0>(ET.Client.Room2C_AdjustUpdateTimeHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.Room2C_CheckHashFailHandler.<Run>d__0>(ET.Client.Room2C_CheckHashFailHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.Room2C_EnterMapHandler.<Run>d__0>(ET.Client.Room2C_EnterMapHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.RouterAddressComponentSystem.<GetAllRouter>d__2>(ET.Client.RouterAddressComponentSystem.<GetAllRouter>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.RouterAddressComponentSystem.<Init>d__1>(ET.Client.RouterAddressComponentSystem.<Init>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.RouterAddressComponentSystem.<WaitTenMinGetAllRouter>d__3>(ET.Client.RouterAddressComponentSystem.<WaitTenMinGetAllRouter>d__3&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.RouterCheckComponentSystem.<CheckAsync>d__1>(ET.Client.RouterCheckComponentSystem.<CheckAsync>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.SceneChangeFinishEvent_CreateUIHelp.<Run>d__0>(ET.Client.SceneChangeFinishEvent_CreateUIHelp.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.SceneChangeHelper.<SceneChangeTo>d__0>(ET.Client.SceneChangeHelper.<SceneChangeTo>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.SceneChangeStart_AddComponent.<Run>d__0>(ET.Client.SceneChangeStart_AddComponent.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.UIHelper.<Remove>d__1>(ET.Client.UIHelper.<Remove>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.UILSLobbyComponentSystem.<EnterMap>d__1>(ET.Client.UILSLobbyComponentSystem.<EnterMap>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Client.UILobbyComponentSystem.<EnterMap>d__1>(ET.Client.UILobbyComponentSystem.<EnterMap>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.ConsoleComponentSystem.<Start>d__1>(ET.ConsoleComponentSystem.<Start>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.Entry.<StartAsync>d__2>(ET.Entry.<StartAsync>d__2&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EntryEvent1_InitShare.<Run>d__0>(ET.EntryEvent1_InitShare.<Run>d__0&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.Client.AppStartInitFinish>>(ET.EventSystem.<PublishAsync>d__4<object,ET.Client.AppStartInitFinish>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.Client.AppStartInitFinish>>(ET.EventSystem.<PublishAsync>d__4<object,ET.Client.AppStartInitFinish>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LSSceneChangeStart>>(ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LSSceneChangeStart>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LSSceneChangeStart>>(ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LSSceneChangeStart>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LoginFinish>>(ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LoginFinish>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LoginFinish>>(ET.EventSystem.<PublishAsync>d__4<object,ET.Client.LoginFinish>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent1>>(ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent1>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent1>>(ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent1>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent2>>(ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent2>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent2>>(ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent2>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent3>>(ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent3>&)
 		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent3>>(ET.EventSystem.<PublishAsync>d__4<object,ET.EntryEvent3>&)
-		// System.Void ET.ETAsyncTaskMethodBuilder.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.WaitType.Wait_Room2C_Start>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.Wait_CreateMyUnit>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.Wait_SceneChangeFinish>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.Wait_UnitStop>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<System.ValueTuple<uint,object>>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<byte>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<int>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<long>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<object>(object&)
-		// System.Void ET.ETAsyncTaskMethodBuilder<uint>.Start<object>(object&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.FiberInit_Main.<Handle>d__0>(ET.FiberInit_Main.<Handle>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.MailBoxType_OrderedMessageHandler.<HandleInner>d__1>(ET.MailBoxType_OrderedMessageHandler.<HandleInner>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.MailBoxType_UnOrderedMessageHandler.<HandleAsync>d__1>(ET.MailBoxType_UnOrderedMessageHandler.<HandleAsync>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.MessageHandler.<Handle>d__1<object,object,object>>(ET.MessageHandler.<Handle>d__1<object,object,object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.MessageHandler.<Handle>d__1<object,object>>(ET.MessageHandler.<Handle>d__1<object,object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.MessageSessionHandler.<HandleAsync>d__2<object,object>>(ET.MessageSessionHandler.<HandleAsync>d__2<object,object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.MessageSessionHandler.<HandleAsync>d__2<object>>(ET.MessageSessionHandler.<HandleAsync>d__2<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.NumericChangeEvent_NotifyWatcher.<Run>d__0>(ET.NumericChangeEvent_NotifyWatcher.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.ObjectWaitSystem.<>c__DisplayClass5_0.<<Wait>g__WaitTimeout|0>d<object>>(ET.ObjectWaitSystem.<>c__DisplayClass5_0.<<Wait>g__WaitTimeout|0>d<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.ReloadConfigConsoleHandler.<Run>d__0>(ET.ReloadConfigConsoleHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.ReloadDllConsoleHandler.<Run>d__0>(ET.ReloadDllConsoleHandler.<Run>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder.Start<ET.SessionSystem.<>c__DisplayClass4_0.<<Call>g__Timeout|0>d>(ET.SessionSystem.<>c__DisplayClass4_0.<<Call>g__Timeout|0>d&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.WaitType.Wait_Room2C_Start>.Start<ET.ObjectWaitSystem.<Wait>d__4<ET.Client.WaitType.Wait_Room2C_Start>>(ET.ObjectWaitSystem.<Wait>d__4<ET.Client.WaitType.Wait_Room2C_Start>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.Wait_CreateMyUnit>.Start<ET.ObjectWaitSystem.<Wait>d__4<ET.Client.Wait_CreateMyUnit>>(ET.ObjectWaitSystem.<Wait>d__4<ET.Client.Wait_CreateMyUnit>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.Wait_SceneChangeFinish>.Start<ET.ObjectWaitSystem.<Wait>d__4<ET.Client.Wait_SceneChangeFinish>>(ET.ObjectWaitSystem.<Wait>d__4<ET.Client.Wait_SceneChangeFinish>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<ET.Client.Wait_UnitStop>.Start<ET.ObjectWaitSystem.<Wait>d__4<ET.Client.Wait_UnitStop>>(ET.ObjectWaitSystem.<Wait>d__4<ET.Client.Wait_UnitStop>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<System.ValueTuple<uint,object>>.Start<ET.Client.RouterHelper.<GetRouterAddress>d__1>(ET.Client.RouterHelper.<GetRouterAddress>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<byte>.Start<ET.MoveComponentSystem.<MoveToAsync>d__5>(ET.MoveComponentSystem.<MoveToAsync>d__5&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<int>.Start<ET.Client.MoveHelper.<MoveToAsync>d__0>(ET.Client.MoveHelper.<MoveToAsync>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<long>.Start<ET.Client.ClientSenderCompnentSystem.<LoginAsync>d__3>(ET.Client.ClientSenderCompnentSystem.<LoginAsync>d__3&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.ClientSenderCompnentSystem.<Call>d__5>(ET.Client.ClientSenderCompnentSystem.<Call>d__5&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.HttpClientHelper.<Get>d__0>(ET.Client.HttpClientHelper.<Get>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.ResourcesLoaderComponentSystem.<LoadAllAssetsAsync>d__4<object>>(ET.Client.ResourcesLoaderComponentSystem.<LoadAllAssetsAsync>d__4<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.ResourcesLoaderComponentSystem.<LoadAssetAsync>d__3<object>>(ET.Client.ResourcesLoaderComponentSystem.<LoadAssetAsync>d__3<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.RouterHelper.<CreateRouterSession>d__0>(ET.Client.RouterHelper.<CreateRouterSession>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UIComponentSystem.<Create>d__1>(ET.Client.UIComponentSystem.<Create>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UIGlobalComponentSystem.<OnCreate>d__1>(ET.Client.UIGlobalComponentSystem.<OnCreate>d__1&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UIHelpEvent.<OnCreate>d__0>(ET.Client.UIHelpEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UIHelper.<Create>d__0>(ET.Client.UIHelper.<Create>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UILSLobbyEvent.<OnCreate>d__0>(ET.Client.UILSLobbyEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UILSLoginEvent.<OnCreate>d__0>(ET.Client.UILSLoginEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UILSRoomEvent.<OnCreate>d__0>(ET.Client.UILSRoomEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UILobbyEvent.<OnCreate>d__0>(ET.Client.UILobbyEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.Client.UILoginEvent.<OnCreate>d__0>(ET.Client.UILoginEvent.<OnCreate>d__0&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.ObjectWaitSystem.<Wait>d__4<object>>(ET.ObjectWaitSystem.<Wait>d__4<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.ObjectWaitSystem.<Wait>d__5<object>>(ET.ObjectWaitSystem.<Wait>d__5<object>&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.RpcInfo.<Wait>d__7>(ET.RpcInfo.<Wait>d__7&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.SessionSystem.<Call>d__3>(ET.SessionSystem.<Call>d__3&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<object>.Start<ET.SessionSystem.<Call>d__4>(ET.SessionSystem.<Call>d__4&)
+		// System.Void ET.ETAsyncTaskMethodBuilder<uint>.Start<ET.Client.RouterHelper.<Connect>d__2>(ET.Client.RouterHelper.<Connect>d__2&)
 		// object ET.Entity.AddChild<object,object,object>(object,object,bool)
 		// object ET.Entity.AddChild<object,object,object>(object,object,bool)
 		// object ET.Entity.AddChildWithId<object,int>(long,int,bool)
 		// object ET.Entity.AddChildWithId<object,int>(long,int,bool)
 		// object ET.Entity.AddChildWithId<object,object,object,object>(long,object,object,object,bool)
 		// object ET.Entity.AddChildWithId<object,object,object,object>(long,object,object,object,bool)
@@ -694,7 +964,7 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 		// object UnityEngine.GameObject.GetComponent<object>()
 		// object UnityEngine.GameObject.GetComponent<object>()
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform)
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform)
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform,bool)
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform,bool)
-		// YooAsset.AllAssetsOperationHandle YooAsset.ResourcePackage.LoadAllAssetsAsync<object>(string)
-		// YooAsset.AssetOperationHandle YooAsset.ResourcePackage.LoadAssetAsync<object>(string)
+		// YooAsset.AllAssetsHandle YooAsset.ResourcePackage.LoadAllAssetsAsync<object>(string,uint)
+		// YooAsset.AssetHandle YooAsset.ResourcePackage.LoadAssetAsync<object>(string,uint)
 	}
 	}
 }
 }

+ 11 - 10
Unity/Assets/Scripts/Loader/Plugins/HybridCLR/Generated/link.xml

@@ -35,10 +35,13 @@
     <type fullname="MongoDB.Bson.Serialization.Options.DictionaryRepresentation" preserve="all" />
     <type fullname="MongoDB.Bson.Serialization.Options.DictionaryRepresentation" preserve="all" />
   </assembly>
   </assembly>
   <assembly fullname="System">
   <assembly fullname="System">
+    <type fullname="System.CodeDom.Compiler.GeneratedCodeAttribute" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2/Enumerator" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2/Enumerator" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2/ValueCollection" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2/ValueCollection" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2/ValueCollection/Enumerator" preserve="all" />
     <type fullname="System.Collections.Generic.SortedDictionary`2/ValueCollection/Enumerator" preserve="all" />
+    <type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
+    <type fullname="System.ComponentModel.EditorBrowsableState" preserve="all" />
     <type fullname="System.Net.EndPoint" preserve="all" />
     <type fullname="System.Net.EndPoint" preserve="all" />
     <type fullname="System.Net.IPAddress" preserve="all" />
     <type fullname="System.Net.IPAddress" preserve="all" />
     <type fullname="System.Net.IPEndPoint" preserve="all" />
     <type fullname="System.Net.IPEndPoint" preserve="all" />
@@ -254,13 +257,13 @@
     <type fullname="UnityEngine.UI.Text" preserve="all" />
     <type fullname="UnityEngine.UI.Text" preserve="all" />
   </assembly>
   </assembly>
   <assembly fullname="YooAsset">
   <assembly fullname="YooAsset">
-    <type fullname="YooAsset.AllAssetsOperationHandle" preserve="all" />
-    <type fullname="YooAsset.AssetOperationHandle" preserve="all" />
-    <type fullname="YooAsset.OperationHandleBase" preserve="all" />
-    <type fullname="YooAsset.RawFileOperationHandle" preserve="all" />
+    <type fullname="YooAsset.AllAssetsHandle" preserve="all" />
+    <type fullname="YooAsset.AssetHandle" preserve="all" />
+    <type fullname="YooAsset.HandleBase" preserve="all" />
+    <type fullname="YooAsset.RawFileHandle" preserve="all" />
     <type fullname="YooAsset.ResourcePackage" preserve="all" />
     <type fullname="YooAsset.ResourcePackage" preserve="all" />
-    <type fullname="YooAsset.SceneOperationHandle" preserve="all" />
-    <type fullname="YooAsset.SubAssetsOperationHandle" preserve="all" />
+    <type fullname="YooAsset.SceneHandle" preserve="all" />
+    <type fullname="YooAsset.SubAssetsHandle" preserve="all" />
     <type fullname="YooAsset.UnloadSceneOperation" preserve="all" />
     <type fullname="YooAsset.UnloadSceneOperation" preserve="all" />
     <type fullname="YooAsset.YooAssets" preserve="all" />
     <type fullname="YooAsset.YooAssets" preserve="all" />
   </assembly>
   </assembly>
@@ -285,11 +288,8 @@
     <type fullname="System.Console" preserve="all" />
     <type fullname="System.Console" preserve="all" />
     <type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
     <type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
-    <type fullname="System.Diagnostics.DebuggerBrowsableAttribute" preserve="all" />
-    <type fullname="System.Diagnostics.DebuggerBrowsableState" preserve="all" />
     <type fullname="System.Diagnostics.DebuggerDisplayAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggerDisplayAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggerHiddenAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggerHiddenAttribute" preserve="all" />
-    <type fullname="System.Diagnostics.DebuggerStepThroughAttribute" preserve="all" />
     <type fullname="System.Enum" preserve="all" />
     <type fullname="System.Enum" preserve="all" />
     <type fullname="System.Exception" preserve="all" />
     <type fullname="System.Exception" preserve="all" />
     <type fullname="System.Func`1" preserve="all" />
     <type fullname="System.Func`1" preserve="all" />
@@ -318,9 +318,10 @@
     <type fullname="System.Runtime.CompilerServices.IAsyncStateMachine" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.IAsyncStateMachine" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.IsReadOnlyAttribute" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.IsReadOnlyAttribute" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
+    <type fullname="System.Runtime.CompilerServices.RuntimeHelpers" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.TaskAwaiter" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.TaskAwaiter" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.TaskAwaiter`1" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.TaskAwaiter`1" preserve="all" />
-    <type fullname="System.Runtime.Versioning.TargetFrameworkAttribute" preserve="all" />
+    <type fullname="System.RuntimeFieldHandle" preserve="all" />
     <type fullname="System.RuntimeTypeHandle" preserve="all" />
     <type fullname="System.RuntimeTypeHandle" preserve="all" />
     <type fullname="System.Security.Permissions.SecurityAction" preserve="all" />
     <type fullname="System.Security.Permissions.SecurityAction" preserve="all" />
     <type fullname="System.Security.Permissions.SecurityPermissionAttribute" preserve="all" />
     <type fullname="System.Security.Permissions.SecurityPermissionAttribute" preserve="all" />

+ 49 - 67
Unity/Assets/Scripts/Loader/Resource/ResourcesComponent.cs

@@ -1,24 +1,10 @@
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
-using System.IO;
 using UnityEngine;
 using UnityEngine;
 using YooAsset;
 using YooAsset;
 
 
 namespace ET
 namespace ET
 {
 {
-    /// <summary>
-    /// 资源文件查询服务类
-    /// </summary>
-    public class GameQueryServices : IQueryServices
-    {
-        public bool QueryStreamingAssets(string packageName, string fileName)
-        {
-            // 注意:fileName包含文件格式
-            string filePath = Path.Combine(YooAssetSettings.DefaultYooFolderName, packageName, fileName);
-            return BetterStreamingAssets.FileExists(filePath);
-        }
-    }
-    
     /// <summary>
     /// <summary>
     /// 远端资源地址查询服务类
     /// 远端资源地址查询服务类
     /// </summary>
     /// </summary>
@@ -32,22 +18,23 @@ namespace ET
             _defaultHostServer = defaultHostServer;
             _defaultHostServer = defaultHostServer;
             _fallbackHostServer = fallbackHostServer;
             _fallbackHostServer = fallbackHostServer;
         }
         }
+
         string IRemoteServices.GetRemoteMainURL(string fileName)
         string IRemoteServices.GetRemoteMainURL(string fileName)
         {
         {
             return $"{_defaultHostServer}/{fileName}";
             return $"{_defaultHostServer}/{fileName}";
         }
         }
+
         string IRemoteServices.GetRemoteFallbackURL(string fileName)
         string IRemoteServices.GetRemoteFallbackURL(string fileName)
         {
         {
             return $"{_fallbackHostServer}/{fileName}";
             return $"{_fallbackHostServer}/{fileName}";
         }
         }
     }
     }
-    
-    public class ResourcesComponent: Singleton<ResourcesComponent>, ISingletonAwake
+
+    public class ResourcesComponent : Singleton<ResourcesComponent>, ISingletonAwake
     {
     {
         public void Awake()
         public void Awake()
         {
         {
             YooAssets.Initialize();
             YooAssets.Initialize();
-            BetterStreamingAssets.Initialize();
         }
         }
 
 
         protected override void Destroy()
         protected override void Destroy()
@@ -65,14 +52,14 @@ namespace ET
 
 
             GlobalConfig globalConfig = Resources.Load<GlobalConfig>("GlobalConfig");
             GlobalConfig globalConfig = Resources.Load<GlobalConfig>("GlobalConfig");
             EPlayMode ePlayMode = globalConfig.EPlayMode;
             EPlayMode ePlayMode = globalConfig.EPlayMode;
-            
+
             // 编辑器下的模拟模式
             // 编辑器下的模拟模式
             switch (ePlayMode)
             switch (ePlayMode)
             {
             {
                 case EPlayMode.EditorSimulateMode:
                 case EPlayMode.EditorSimulateMode:
                 {
                 {
                     EditorSimulateModeParameters createParameters = new();
                     EditorSimulateModeParameters createParameters = new();
-                    createParameters.SimulateManifestFilePath = EditorSimulateModeHelper.SimulateBuild(packageName);
+                    createParameters.SimulateManifestFilePath = EditorSimulateModeHelper.SimulateBuild("ScriptableBuildPipeline", packageName);
                     await package.InitializeAsync(createParameters).Task;
                     await package.InitializeAsync(createParameters).Task;
                     break;
                     break;
                 }
                 }
@@ -87,7 +74,7 @@ namespace ET
                     string defaultHostServer = GetHostServerURL();
                     string defaultHostServer = GetHostServerURL();
                     string fallbackHostServer = GetHostServerURL();
                     string fallbackHostServer = GetHostServerURL();
                     HostPlayModeParameters createParameters = new();
                     HostPlayModeParameters createParameters = new();
-                    createParameters.QueryServices = new GameQueryServices();
+                    createParameters.BuildinQueryServices = new GameQueryServices();
                     createParameters.RemoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
                     createParameters.RemoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
                     await package.InitializeAsync(createParameters).Task;
                     await package.InitializeAsync(createParameters).Task;
                     break;
                     break;
@@ -95,53 +82,47 @@ namespace ET
                 default:
                 default:
                     throw new ArgumentOutOfRangeException();
                     throw new ArgumentOutOfRangeException();
             }
             }
+        }
 
 
-            return;
+        static string GetHostServerURL()
+        {
+            //string hostServerIP = "http://10.0.2.2"; //安卓模拟器地址
+            string hostServerIP = "http://127.0.0.1";
+            string appVersion = "v1.0";
 
 
-            string GetHostServerURL()
+#if UNITY_EDITOR
+            if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.Android)
+            {
+                return $"{hostServerIP}/CDN/Android/{appVersion}";
+            }
+            else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.iOS)
             {
             {
-                //string hostServerIP = "http://10.0.2.2"; //安卓模拟器地址
-                string hostServerIP = "http://127.0.0.1";
-                string appVersion = "v1.0";
+                return $"{hostServerIP}/CDN/IPhone/{appVersion}";
+            }
+            else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.WebGL)
+            {
+                return $"{hostServerIP}/CDN/WebGL/{appVersion}";
+            }
 
 
-#if UNITY_EDITOR
-                if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.Android)
-                {
-                    return $"{hostServerIP}/CDN/Android/{appVersion}";
-                }
-                else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.iOS)
-                {
-                    return $"{hostServerIP}/CDN/IPhone/{appVersion}";
-                }
-                else if (UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.WebGL)
-                {
-                    return $"{hostServerIP}/CDN/WebGL/{appVersion}";
-                }
-                else
-                {
-                    return $"{hostServerIP}/CDN/PC/{appVersion}";
-                }
+            return $"{hostServerIP}/CDN/PC/{appVersion}";
 #else
 #else
-		        if (Application.platform == RuntimePlatform.Android)
-                {
-                    return $"{hostServerIP}/CDN/Android/{appVersion}";
-                }
-                else if (Application.platform == RuntimePlatform.IPhonePlayer)
-                {
-                    return $"{hostServerIP}/CDN/IPhone/{appVersion}";
-                }
-                else if (Application.platform == RuntimePlatform.WebGLPlayer)
-                {
-                    return $"{hostServerIP}/CDN/WebGL/{appVersion}";
-                }
-                else
-                {
-                    return $"{hostServerIP}/CDN/PC/{appVersion}";
-                }
-#endif
+            if (Application.platform == RuntimePlatform.Android)
+            {
+                return $"{hostServerIP}/CDN/Android/{appVersion}";
+            }
+            else if (Application.platform == RuntimePlatform.IPhonePlayer)
+            {
+                return $"{hostServerIP}/CDN/IPhone/{appVersion}";
             }
             }
+            else if (Application.platform == RuntimePlatform.WebGLPlayer)
+            {
+                return $"{hostServerIP}/CDN/WebGL/{appVersion}";
+            }
+
+            return $"{hostServerIP}/CDN/PC/{appVersion}";
+#endif
         }
         }
-        
+
         public void DestroyPackage(string packageName)
         public void DestroyPackage(string packageName)
         {
         {
             ResourcePackage package = YooAssets.GetPackage(packageName);
             ResourcePackage package = YooAssets.GetPackage(packageName);
@@ -152,29 +133,30 @@ namespace ET
         /// 主要用来加载dll config aotdll,因为这时候纤程还没创建,无法使用ResourcesLoaderComponent。
         /// 主要用来加载dll config aotdll,因为这时候纤程还没创建,无法使用ResourcesLoaderComponent。
         /// 游戏中的资源应该使用ResourcesLoaderComponent来加载
         /// 游戏中的资源应该使用ResourcesLoaderComponent来加载
         /// </summary>
         /// </summary>
-        public async ETTask<T> LoadAssetAsync<T>(string location) where T: UnityEngine.Object
+        public async ETTask<T> LoadAssetAsync<T>(string location) where T : UnityEngine.Object
         {
         {
-            AssetOperationHandle handle = YooAssets.LoadAssetAsync<T>(location);
+            AssetHandle handle = YooAssets.LoadAssetAsync<T>(location);
             await handle.Task;
             await handle.Task;
             T t = (T)handle.AssetObject;
             T t = (T)handle.AssetObject;
             handle.Release();
             handle.Release();
             return t;
             return t;
         }
         }
-        
+
         /// <summary>
         /// <summary>
         /// 主要用来加载dll config aotdll,因为这时候纤程还没创建,无法使用ResourcesLoaderComponent。
         /// 主要用来加载dll config aotdll,因为这时候纤程还没创建,无法使用ResourcesLoaderComponent。
         /// 游戏中的资源应该使用ResourcesLoaderComponent来加载
         /// 游戏中的资源应该使用ResourcesLoaderComponent来加载
         /// </summary>
         /// </summary>
-        public async ETTask<Dictionary<string, T>> LoadAllAssetsAsync<T>(string location) where T: UnityEngine.Object
+        public async ETTask<Dictionary<string, T>> LoadAllAssetsAsync<T>(string location) where T : UnityEngine.Object
         {
         {
-            AllAssetsOperationHandle allAssetsOperationHandle = YooAssets.LoadAllAssetsAsync<T>(location);
+            AllAssetsHandle allAssetsOperationHandle = YooAssets.LoadAllAssetsAsync<T>(location);
             await allAssetsOperationHandle.Task;
             await allAssetsOperationHandle.Task;
             Dictionary<string, T> dictionary = new Dictionary<string, T>();
             Dictionary<string, T> dictionary = new Dictionary<string, T>();
-            foreach(UnityEngine.Object assetObj in allAssetsOperationHandle.AllAssetObjects)
-            {    
+            foreach (UnityEngine.Object assetObj in allAssetsOperationHandle.AllAssetObjects)
+            {
                 T t = assetObj as T;
                 T t = assetObj as T;
                 dictionary.Add(t.name, t);
                 dictionary.Add(t.name, t);
             }
             }
+
             allAssetsOperationHandle.Release();
             allAssetsOperationHandle.Release();
             return dictionary;
             return dictionary;
         }
         }

+ 1 - 1
Unity/Packages/YooAsset/Editor.meta → Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
-guid: ac093515ae764b94aa07be91d4ba978b
+guid: 0dc8cc2d1f4fd7149a0a1f13f8f8e54b
 folderAsset: yes
 folderAsset: yes
 DefaultImporter:
 DefaultImporter:
   externalObjects: {}
   externalObjects: {}

+ 22 - 0
Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/BuildinFileManifest.cs

@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace ET
+{
+    /// <summary>
+    /// 内置资源清单
+    /// </summary>
+    public class BuildinFileManifest : ScriptableObject
+    {
+        [Serializable]
+        public class Element
+        {
+            public string PackageName;
+            public string FileName;
+            public string FileCRC32;
+        }
+
+        public List<Element> BuildinFiles = new();
+    }
+}

+ 1 - 1
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilder.cs.meta → Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/BuildinFileManifest.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
-guid: de7563040250b4e4a835d1fc90238e38
+guid: 71b02dfa7aa9d4545b3417a18477fbee
 MonoImporter:
 MonoImporter:
   externalObjects: {}
   externalObjects: {}
   serializedVersion: 2
   serializedVersion: 2

+ 10 - 0
Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsDefine.cs

@@ -0,0 +1,10 @@
+namespace ET
+{
+    public static class StreamingAssetsDefine
+    {
+        /// <summary>
+        /// 根目录名称(保持和YooAssets资源系统一致)
+        /// </summary>
+        public const string RootFolderName = "Bundles";
+    }
+}

+ 1 - 1
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderHelper.cs.meta → Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsDefine.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
-guid: f48abdec05f0dbe438a83e181fe6bc93
+guid: 7e44d691f47abe34e9deb9cb309074f4
 MonoImporter:
 MonoImporter:
   externalObjects: {}
   externalObjects: {}
   serializedVersion: 2
   serializedVersion: 2

+ 177 - 0
Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsHelper.cs

@@ -0,0 +1,177 @@
+using System.IO;
+using UnityEngine;
+using YooAsset;
+#if !UNITY_EDITOR
+using System.Collections.Generic;
+#endif
+
+namespace ET
+{
+    /// <summary>
+    /// 资源文件查询服务类
+    /// </summary>
+    public class GameQueryServices : IBuildinQueryServices
+    {
+        /// <summary>
+        /// 查询内置文件的时候,是否比对文件哈希值
+        /// </summary>
+        public static bool CompareFileCRC = false;
+
+        public bool Query(string packageName, string fileName, string fileCRC)
+        {
+            // 注意:fileName包含文件格式
+            return StreamingAssetsHelper.FileExists(packageName, fileName, fileCRC);
+        }
+    }
+
+#if UNITY_EDITOR
+    public static class StreamingAssetsHelper
+    {
+        public static void Init()
+        {
+        }
+
+        public static bool FileExists(string packageName, string fileName, string fileCRC)
+        {
+            string filePath = Path.Combine(Application.streamingAssetsPath, StreamingAssetsDefine.RootFolderName, packageName, fileName);
+            if (File.Exists(filePath))
+            {
+                if (GameQueryServices.CompareFileCRC)
+                {
+                    string crc32 = YooAsset.Editor.EditorTools.GetFileCRC32(filePath);
+                    return crc32 == fileCRC;
+                }
+
+                return true;
+            }
+
+            return false;
+        }
+    }
+#else
+    public static class StreamingAssetsHelper
+    {
+        private class PackageQuery
+        {
+            public readonly Dictionary<string, BuildinFileManifest.Element> Elements = new(1000);
+        }
+
+        private static bool _isInit;
+        private static readonly Dictionary<string, PackageQuery> _packages = new(10);
+
+        /// <summary>
+        /// 初始化
+        /// </summary>
+        public static void Init()
+        {
+            if (_isInit)
+            {
+                return;
+            }
+
+            _isInit = true;
+
+            var manifest = Resources.Load<BuildinFileManifest>("BuildinFileManifest");
+            if (manifest != null)
+            {
+                foreach (var element in manifest.BuildinFiles)
+                {
+                    if (_packages.TryGetValue(element.PackageName, out PackageQuery package) == false)
+                    {
+                        package = new PackageQuery();
+                        _packages.Add(element.PackageName, package);
+                    }
+
+                    package.Elements.Add(element.FileName, element);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 内置文件查询方法
+        /// </summary>
+        public static bool FileExists(string packageName, string fileName, string fileCRC32)
+        {
+            if (!_isInit)
+            {
+                Init();
+            }
+
+            if (!_packages.TryGetValue(packageName, out PackageQuery package))
+            {
+                return false;
+            }
+
+            if (!package.Elements.TryGetValue(fileName, out var element))
+            {
+                return false;
+            }
+
+            if (GameQueryServices.CompareFileCRC)
+            {
+                return element.FileCRC32 == fileCRC32;
+            }
+
+            return true;
+        }
+    }
+#endif
+
+#if UNITY_EDITOR
+    internal class PreprocessBuild : UnityEditor.Build.IPreprocessBuildWithReport
+    {
+        public int callbackOrder => 0;
+
+        /// <summary>
+        /// 在构建应用程序前处理
+        /// 原理:在构建APP之前,搜索StreamingAssets目录下的所有资源文件,然后将这些文件信息写入内置清单,内置清单存储在Resources文件夹下。
+        /// </summary>
+        public void OnPreprocessBuild(UnityEditor.Build.Reporting.BuildReport report)
+        {
+            string saveFilePath = "Assets/Resources/BuildinFileManifest.asset";
+            if (File.Exists(saveFilePath))
+            {
+                File.Delete(saveFilePath);
+                UnityEditor.AssetDatabase.SaveAssets();
+                UnityEditor.AssetDatabase.Refresh();
+            }
+
+            string folderPath = $"{Application.dataPath}/StreamingAssets/{StreamingAssetsDefine.RootFolderName}";
+            DirectoryInfo root = new DirectoryInfo(folderPath);
+            if (!root.Exists)
+            {
+                Debug.LogWarning($"没有发现YooAsset内置目录 : {folderPath}");
+                return;
+            }
+
+            var manifest = ScriptableObject.CreateInstance<BuildinFileManifest>();
+            FileInfo[] files = root.GetFiles("*", SearchOption.AllDirectories);
+            foreach (var fileInfo in files)
+            {
+                if (fileInfo.Extension == ".meta")
+                {
+                    continue;
+                }
+
+                if (fileInfo.Name.StartsWith("PackageManifest_"))
+                {
+                    continue;
+                }
+
+                BuildinFileManifest.Element element = new() { PackageName = fileInfo.Directory.Name, FileCRC32 = YooAsset.Editor.EditorTools.GetFileCRC32(fileInfo.FullName), FileName = fileInfo.Name };
+                manifest.BuildinFiles.Add(element);
+            }
+
+            if (!Directory.Exists("Assets/Resources"))
+            {
+                Directory.CreateDirectory("Assets/Resources");
+            }
+
+            UnityEditor.AssetDatabase.CreateAsset(manifest, saveFilePath);
+            UnityEditor.AssetDatabase.SaveAssets();
+            UnityEditor.AssetDatabase.Refresh();
+            Debug.Log($"一共{manifest.BuildinFiles.Count}个内置文件,内置资源清单保存成功 : {saveFilePath}");
+        }
+    }
+#endif
+}

+ 1 - 1
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderSetting.cs.meta → Unity/Assets/Scripts/Loader/Resource/StreamingAssetsHelper/StreamingAssetsHelper.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
-guid: 09788b4733bab2d4792fdd5d28e7653c
+guid: ca0617f5ec2b4504b923e3205dc77f54
 MonoImporter:
 MonoImporter:
   externalObjects: {}
   externalObjects: {}
   serializedVersion: 2
   serializedVersion: 2

+ 2 - 2
Unity/Assets/Scripts/Loader/Unity.Loader.asmdef

@@ -6,8 +6,8 @@
         "Unity.Core",
         "Unity.Core",
         "HybridCLR.Runtime",
         "HybridCLR.Runtime",
         "MemoryPack",
         "MemoryPack",
-        "BetterStreamingAssets",
-        "YooAsset"
+        "YooAsset",
+        "YooAsset.Editor"
     ],
     ],
     "includePlatforms": [],
     "includePlatforms": [],
     "excludePlatforms": [],
     "excludePlatforms": [],

+ 24 - 25
Unity/Assets/Scripts/ModelView/Client/Module/Resource/ResourcesLoaderComponent.cs

@@ -1,4 +1,3 @@
-using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using UnityEngine.SceneManagement;
 using UnityEngine.SceneManagement;
 using YooAsset;
 using YooAsset;
@@ -14,13 +13,13 @@ namespace ET.Client
         {
         {
             self.package = YooAssets.GetPackage("DefaultPackage");
             self.package = YooAssets.GetPackage("DefaultPackage");
         }
         }
-        
+
         [EntitySystem]
         [EntitySystem]
         private static void Awake(this ResourcesLoaderComponent self, string packageName)
         private static void Awake(this ResourcesLoaderComponent self, string packageName)
         {
         {
             self.package = YooAssets.GetPackage(packageName);
             self.package = YooAssets.GetPackage(packageName);
         }
         }
-        
+
         [EntitySystem]
         [EntitySystem]
         private static void Destroy(this ResourcesLoaderComponent self)
         private static void Destroy(this ResourcesLoaderComponent self)
         {
         {
@@ -28,19 +27,19 @@ namespace ET.Client
             {
             {
                 switch (kv.Value)
                 switch (kv.Value)
                 {
                 {
-                    case AssetOperationHandle handle:
+                    case AssetHandle handle:
                         handle.Release();
                         handle.Release();
                         break;
                         break;
-                    case AllAssetsOperationHandle handle:
+                    case AllAssetsHandle handle:
                         handle.Release();
                         handle.Release();
                         break;
                         break;
-                    case SubAssetsOperationHandle handle:
+                    case SubAssetsHandle handle:
                         handle.Release();
                         handle.Release();
                         break;
                         break;
-                    case RawFileOperationHandle handle:
+                    case RawFileHandle handle:
                         handle.Release();
                         handle.Release();
                         break;
                         break;
-                    case SceneOperationHandle handle:
+                    case SceneHandle handle:
                         if (!handle.IsMainScene())
                         if (!handle.IsMainScene())
                         {
                         {
                             handle.UnloadAsync();
                             handle.UnloadAsync();
@@ -50,50 +49,50 @@ namespace ET.Client
             }
             }
         }
         }
 
 
-        public static async ETTask<T> LoadAssetAsync<T>(this ResourcesLoaderComponent self, string location) where T: UnityEngine.Object
+        public static async ETTask<T> LoadAssetAsync<T>(this ResourcesLoaderComponent self, string location) where T : UnityEngine.Object
         {
         {
             using CoroutineLock coroutineLock = await self.Root().GetComponent<CoroutineLockComponent>().Wait(CoroutineLockType.ResourcesLoader, location.GetHashCode());
             using CoroutineLock coroutineLock = await self.Root().GetComponent<CoroutineLockComponent>().Wait(CoroutineLockType.ResourcesLoader, location.GetHashCode());
-            
-            OperationHandleBase handler;
+
+            HandleBase handler;
             if (!self.handlers.TryGetValue(location, out handler))
             if (!self.handlers.TryGetValue(location, out handler))
             {
             {
                 handler = self.package.LoadAssetAsync<T>(location);
                 handler = self.package.LoadAssetAsync<T>(location);
-            
+
                 await handler.Task;
                 await handler.Task;
 
 
                 self.handlers.Add(location, handler);
                 self.handlers.Add(location, handler);
             }
             }
-            
-            return (T)((AssetOperationHandle)handler).AssetObject;
+
+            return (T)((AssetHandle)handler).AssetObject;
         }
         }
-        
-        public static async ETTask<Dictionary<string, T>> LoadAllAssetsAsync<T>(this ResourcesLoaderComponent self, string location) where T: UnityEngine.Object
+
+        public static async ETTask<Dictionary<string, T>> LoadAllAssetsAsync<T>(this ResourcesLoaderComponent self, string location) where T : UnityEngine.Object
         {
         {
             using CoroutineLock coroutineLock = await self.Root().GetComponent<CoroutineLockComponent>().Wait(CoroutineLockType.ResourcesLoader, location.GetHashCode());
             using CoroutineLock coroutineLock = await self.Root().GetComponent<CoroutineLockComponent>().Wait(CoroutineLockType.ResourcesLoader, location.GetHashCode());
 
 
-            OperationHandleBase handler;
+            HandleBase handler;
             if (!self.handlers.TryGetValue(location, out handler))
             if (!self.handlers.TryGetValue(location, out handler))
             {
             {
                 handler = self.package.LoadAllAssetsAsync<T>(location);
                 handler = self.package.LoadAllAssetsAsync<T>(location);
-            
                 await handler.Task;
                 await handler.Task;
                 self.handlers.Add(location, handler);
                 self.handlers.Add(location, handler);
             }
             }
 
 
             Dictionary<string, T> dictionary = new Dictionary<string, T>();
             Dictionary<string, T> dictionary = new Dictionary<string, T>();
-            foreach(UnityEngine.Object assetObj in ((AllAssetsOperationHandle)handler).AllAssetObjects)
-            {    
+            foreach (UnityEngine.Object assetObj in ((AllAssetsHandle)handler).AllAssetObjects)
+            {
                 T t = assetObj as T;
                 T t = assetObj as T;
                 dictionary.Add(t.name, t);
                 dictionary.Add(t.name, t);
             }
             }
+
             return dictionary;
             return dictionary;
         }
         }
-        
+
         public static async ETTask LoadSceneAsync(this ResourcesLoaderComponent self, string location, LoadSceneMode loadSceneMode)
         public static async ETTask LoadSceneAsync(this ResourcesLoaderComponent self, string location, LoadSceneMode loadSceneMode)
         {
         {
             using CoroutineLock coroutineLock = await self.Root().GetComponent<CoroutineLockComponent>().Wait(CoroutineLockType.ResourcesLoader, location.GetHashCode());
             using CoroutineLock coroutineLock = await self.Root().GetComponent<CoroutineLockComponent>().Wait(CoroutineLockType.ResourcesLoader, location.GetHashCode());
 
 
-            OperationHandleBase handler;
+            HandleBase handler;
             if (self.handlers.TryGetValue(location, out handler))
             if (self.handlers.TryGetValue(location, out handler))
             {
             {
                 return;
                 return;
@@ -105,15 +104,15 @@ namespace ET.Client
             self.handlers.Add(location, handler);
             self.handlers.Add(location, handler);
         }
         }
     }
     }
-    
+
     /// <summary>
     /// <summary>
     /// 用来管理资源,生命周期跟随Parent,比如CurrentScene用到的资源应该用CurrentScene的ResourcesLoaderComponent来加载
     /// 用来管理资源,生命周期跟随Parent,比如CurrentScene用到的资源应该用CurrentScene的ResourcesLoaderComponent来加载
     /// 这样CurrentScene释放后,它用到的所有资源都释放了
     /// 这样CurrentScene释放后,它用到的所有资源都释放了
     /// </summary>
     /// </summary>
     [ComponentOf]
     [ComponentOf]
-    public class ResourcesLoaderComponent: Entity, IAwake, IAwake<string>, IDestroy
+    public class ResourcesLoaderComponent : Entity, IAwake, IAwake<string>, IDestroy
     {
     {
         public ResourcePackage package;
         public ResourcePackage package;
-        public Dictionary<string, OperationHandleBase> handlers = new();
+        public Dictionary<string, HandleBase> handlers = new();
     }
     }
 }
 }

+ 0 - 22
Unity/Assets/Settings/AssetBundleBuilderSetting.asset

@@ -1,22 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!114 &11400000
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 09788b4733bab2d4792fdd5d28e7653c, type: 3}
-  m_Name: AssetBundleBuilderSetting
-  m_EditorClassIdentifier: 
-  BuildPipeline: 1
-  BuildMode: 1
-  BuildPackage: DefaultPackage
-  CompressOption: 2
-  OutputNameStyle: 4
-  CopyBuildinFileOption: 1
-  CopyBuildinFileTags: 
-  EncyptionClassName: EncryptionNone

+ 0 - 8
Unity/Assets/Settings/AssetBundleBuilderSetting.asset.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 842abcdb118e7324fa8f752389502994
-NativeFormatImporter:
-  externalObjects: {}
-  mainObjectFileID: 11400000
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 1446
Unity/Packages/YooAsset/CHANGELOG.md

@@ -1,1446 +0,0 @@
-# CHANGELOG
-
-All notable changes to this package will be documented in this file.
-
-## [1.5.1] - 2023-07-12
-
-### Fixed
-
-- 修复了太空战机DEMO在生成内置文件清单的时候,目录不存在引发的异常。
-- 修复了在销毁Package时,如果存在正在加载的bundle,会导致后续加载该bundle报错的问题。
-
-### Changed
-
-- 真机上使用错误方法加载原生文件的时候给予正确的错误提示。
-
-### Added
-
-- 新增了HostPlayModeParameters.RemoteServices字段
-
-  ```c#
-  /// <summary>
-  /// 远端资源地址查询服务类
-  /// </summary>
-  public IRemoteServices RemoteServices = null;
-  ```
-
-### Removed
-
-- 移除了HostPlayModeParameters.DefaultHostServer字段
-- 移除了HostPlayModeParameters.FallbackHostServer字段
-
-## [1.5.0] - 2023-07-05
-
-该版本重构了Persistent类,导致沙盒目录和内置目录的存储结构发生了变化。
-
-该版本支持按照Package自定义沙盒存储目录和内置存储目录。
-
-**注意:低版本升级用户,请使用Space Shooter目录下的StreamingAssetsHelper插件覆盖到本地工程!**
-
-### Changed
-
-- BuildParameters.OutputRoot重命名为BuildOutputRoot
-- 变更了IQueryServices.QueryStreamingAssets(string packageName, string fileName)方法
-
-### Added
-
-- 新增了YooAssets.SetCacheSystemDisableCacheOnWebGL()方法
-
-  ```c#
-  /// <summary>
-  /// 设置缓存系统参数,禁用缓存在WebGL平台
-  /// </summary>
-  public static void SetCacheSystemDisableCacheOnWebGL()
-  ```
-
-- 新增了YooAssets.SetDownloadSystemRedirectLimit()方法
-
-  ```c#
-  /// <summary>
-  /// 设置下载系统参数,网络重定向次数(Unity引擎默认值32)
-  /// 注意:不支持设置为负值
-  /// </summary>
-  public static void SetDownloadSystemRedirectLimit(int redirectLimit)
-  ```
-
-- 新增了构建流程可扩展的方法。
-
-  ```c#
-  public class AssetBundleBuilder
-  {
-      /// <summary>
-      /// 构建资源包
-      /// </summary>
-      public BuildResult Run(BuildParameters buildParameters, List<IBuildTask> buildPipeline)
-  }
-  ```
-
-- 新增了BuildParameters.StreamingAssetsRoot字段
-
-  ```c#
-  public class BuildParameters
-  {
-      /// <summary>
-      /// 内置资源的根目录
-      /// </summary>
-      public string StreamingAssetsRoot;
-  }
-  ```
-
-- 新增了InitializeParameters.BuildinRootDirectory字段
-
-  ```c#
-  /// <summary>
-  /// 内置文件的根路径
-  /// 注意:当参数为空的时候会使用默认的根目录。
-  /// </summary>
-  public string BuildinRootDirectory = string.Empty;
-  ```
-
-- 新增了InitializeParameters.SandboxRootDirectory字段
-
-  ```c#
-  /// <summary>
-  /// 沙盒文件的根路径
-  /// 注意:当参数为空的时候会使用默认的根目录。
-  /// </summary>
-  public string SandboxRootDirectory = string.Empty;
-  ```
-
-- 新增了ResourcePackage.GetPackageBuildinRootDirectory()方法
-
-  ```c#
-  /// <summary>
-  /// 获取包裹的内置文件根路径
-  /// </summary>
-  public string GetPackageBuildinRootDirectory()
-  ```
-
-- 新增了ResourcePackage.GetPackageSandboxRootDirectory()方法
-
-  ```c#
-  /// <summary>
-  /// 获取包裹的沙盒文件根路径
-  /// </summary>
-  public string GetPackageSandboxRootDirectory()
-  ```
-
-- 新增了ResourcePackage.ClearPackageSandbox()方法
-
-  ```c#
-  /// <summary>
-  /// 清空包裹的沙盒目录
-  /// </summary>
-  public void ClearPackageSandbox()
-  ```
-
-### Removed
-
-- 移除了资源包构建流程任务节点可扩展功能。
-- 移除了YooAssets.SetCacheSystemSandboxPath()方法
-- 移除了YooAssets.GetStreamingAssetBuildinFolderName()方法
-- 移除了YooAssets.GetSandboxRoot()方法
-- 移除了YooAssets.ClearSandbox()方法
-
-## [1.4.17] - 2023-06-27
-
-### Changed
-
-- 优化了缓存的信息文件写入方式
-
-- 离线模式支持内置资源解压到沙盒
-
-- 资源包构建流程任务节点支持可扩展
-
-  ```c#
-  using YooAsset.Editor
-  
-  [TaskAttribute(ETaskPipeline.AllPipeline, 100, "自定义任务节点")]
-  public class CustomTask : IBuildTask
-  ```
-
-- 资源收集界面增加了LocationToLower选项
-
-- 资源收集界面增加了IncludeAssetGUID选项
-
-- IShareAssetPackRule 重命名为 ISharedPackRule
-
-### Added
-
-- 新增了ResourcePackage.LoadAllAssetsAsync方法
-
-  ```c#
-  /// <summary>
-  /// 异步加载资源包内所有资源对象
-  /// </summary>
-  /// <param name="assetInfo">资源信息</param>
-  public AllAssetsOperationHandle LoadAllAssetsAsync(AssetInfo assetInfo)
-  ```
-
-- 新增了ResourcePackage.GetAssetInfoByGUID()方法
-
-  ```c#
-  /// <summary>
-  /// 获取资源信息
-  /// </summary>
-  /// <param name="assetGUID">资源GUID</param>
-  public AssetInfo GetAssetInfoByGUID(string assetGUID)
-  ```
-
-- 新增了场景加载参数suspendLoad
-
-  ```c#
-  /// <summary>
-  /// 异步加载场景
-  /// </summary>
-  /// <param name="location">场景的定位地址</param>
-  /// <param name="sceneMode">场景加载模式</param>
-  /// <param name="suspendLoad">场景加载到90%自动挂起</param>
-  /// <param name="priority">优先级</param>
-  public SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, bool suspendLoad = false, int priority = 100)
-  ```
-
-- Extension Sample 增加了GameObjectAssetReference示例脚本
-
-- 新增加了ZeroRedundancySharedPackRule类(零冗余的共享资源打包规则)
-
-- 新增加了FullRedundancySharedPackRule类(全部冗余的共享资源打包规则)
-
-### Removed
-
-- 移除了InitializeParameters.LocationToLower成员字段
-- 移除了LoadSceneAsync方法里的activateOnLoad形参参数
-- 移除了BuildParameters.AutoAnalyzeRedundancy成员字段
-- 移除了DefaultShareAssetPackRule编辑器类
-
-## [1.4.16] - 2023-06-14
-
-### Changed
-
-- 增加了自动分析冗余资源的开关
-
-  ```c#
-  /// <summary>
-  /// 构建参数
-  /// </summary>
-  public class BuildParameters
-  {
-      /// <summary>
-      /// 自动分析冗余资源
-      /// </summary>
-      public bool AutoAnalyzeRedundancy = true;
-  }
-  ```
-
-- 太空战机DEMO启用了新的内置资源查询机制。
-
-## [1.4.15] - 2023-06-09
-
-### Fixed
-
-- 修复了安卓平台,解压内置文件到沙盒失败后不再重新尝试的问题。
-- 修复了验证远端下载文件,极小概率失败的问题。
-- 修复了太空战机DEMO在IOS平台流解密失败的问题。
-
-## [1.4.14] - 2023-05-26
-
-### Fixed
-
-- 修复了收集器对着色器未过滤的问题。
-- 修复了内置着色器Tag特殊情况下未正确传染给依赖资源包的问题。
-
-### Changed
-
-- Unity2021版本及以上推荐使用可编程构建管线(SBP)
-
-## [1.4.13] - 2023-05-12
-
-### Changed
-
-- 可寻址地址冲突时,打印冲突地址的资源路径。
-- 销毁Package的时候清空该Package的缓存记录。
-
-### Added
-
-- 新增方法ResoucePackage.ClearAllCacheFilesAsync()
-
-  ```c#
-  public class ResoucePackage
-  {
-      /// <summary>
-      /// 清理包裹本地所有的缓存文件
-      /// </summary>
-      public ClearAllCacheFilesOperation ClearAllCacheFilesAsync();   
-  }
-  ```
-
-- 新增方法YooAssets.SetCacheSystemSandboxPath()
-
-  ```c#
-  public class YooAssets
-  {
-      /// <summary>
-      /// 设置缓存系统参数,沙盒目录的存储路径
-      /// </summary>
-      public static void SetCacheSystemSandboxPath(string sandboxPath);
-  }
-  ```
-
-## [1.4.12] - 2023-04-22
-
-### Changed
-
-- 增加了对WEBGL平台加密选项的检测。
-
-- 增加了YooAsset/Home Page菜单栏。
-
-- 增加了鼠标右键创建配置的菜单。
-
-- 增加了YooAssets.DestroyPackage()方法。
-
-  ```c#
-  class YooAssets
-  {
-      /// <summary>
-      /// 销毁资源包
-      /// </summary>
-      /// <param name="package">资源包对象</param>
-      public static void DestroyPackage(string packageName);
-  }
-  ```
-
-- UpdatePackageManifestAsync方法增加了新参数autoSaveVersion
-
-  ```c#
-  class ResourcePackage
-  {
-      /// <summary>
-      /// 向网络端请求并更新清单
-      /// </summary>
-      /// <param name="packageVersion">更新的包裹版本</param>
-      /// <param name="autoSaveVersion">更新成功后自动保存版本号,作为下次初始化的版本。</param>
-      /// <param name="timeout">超时时间(默认值:60秒)</param>
-      public UpdatePackageManifestOperation UpdatePackageManifestAsync(string packageVersion, bool autoSaveVersion = true, int timeout = 60)   
-  }
-  ```
-
-- BuildParameters类增加了新字段。
-
-  可以自定义共享资源文件的打包规则。
-
-  ```c#
-  class BuildParameters
-  {
-      /// <summary>
-      /// 共享资源的打包规则
-      /// </summary>
-      public IShareAssetPackRule ShareAssetPackRule = null;
-  }
-  ```
-
-## [1.4.11] - 2023-04-14
-
-### Fixed
-
-- (#97)修复了着色器变种收集配置无法保存的问题。
-- (#83)修复了资源收集界面Package列表没有实时刷新的问题。
-- (#48)优化了场景卸载机制,在切换场景的时候不在主动卸载资源。
-
-### Changed
-
-- 增加了扩展属性
-
-  ```c#
-  [assembly: InternalsVisibleTo("YooAsset.EditorExtension")]
-  [assembly: InternalsVisibleTo("YooAsset.RuntimeExtension")]
-  ```
-
-## [1.4.10] - 2023-04-08
-
-### Fixed
-
-- 修复了资源文件路径无效导致异常的问题。
-- 修复了原生文件不支持ini格式文件的问题。
-- 修复了通过代码途径导入XML配置的报错问题。
-
-## [1.4.9] - 2023-03-29
-
-### Fixed
-
-- 修复了资源配置界面的GroupActiveRule保存无效的问题。
-
-### Changed
-
-- 优化了资源配置导入逻辑,增加了对XML配置文件的合法性检测。
-
-- 优化了UniTask的说明文档。
-
-- 调整构建的输出目录结构。
-
-- 调试窗口增加分屏功能。(Unity2020.3+起效)
-
-- 报告窗口增加分屏功能。(Unity2020.3+起效)
-
-- 编辑器模拟模式支持了虚拟资源包。
-
-- 扩展了Instantiate方法。
-
-  ```c#
-  public sealed class AssetOperationHandle
-  {
-      public GameObject InstantiateSync();
-      public GameObject InstantiateSync(Transform parent);
-      public GameObject InstantiateSync(Transform parent, bool worldPositionStays);
-      public GameObject InstantiateSync(Vector3 position, Quaternion rotation);
-      public GameObject InstantiateSync(Vector3 position, Quaternion rotation, Transform parent);
-  }
-  ```
-
-### Added
-
-- 优化了报告文件内容,增加了资源包内嵌的资源列表。
-
-- 可寻址规则增加了AddressByFilePath类。
-
-- 新增了新方法。
-
-  ```c#
-  /// <summary>
-  /// 向远端请求并更新清单
-  /// </summary>
-  public class UpdatePackageManifestOperation : AsyncOperationBase
-  {
-  	/// <summary>
-  	/// 保存当前清单的版本,用于下次启动时自动加载的版本。
-  	/// </summary>
-  	public void SavePackageVersion();
-  }
-  ```
-
-- 新增了初始化参数。
-
-  ```c#
-  /// <summary>
-  /// 下载失败尝试次数
-  /// 注意:默认值为MaxValue
-  /// </summary>
-  public int DownloadFailedTryAgain = int.MaxValue;
-  ```
-
-- 新增了初始化参数。
-
-  ```c#
-  /// <summary>
-  /// 资源加载每帧处理的最大时间片段
-  /// 注意:默认值为MaxValue
-  /// </summary>
-  public long LoadingMaxTimeSlice = long.MaxValue;
-  ```
-
-### Removed
-
-- 移除了代码里的Patch敏感字。
-
-  ```c#
-  //PatchManifest.cs重命名为PackageManifest.cs
-  //AssetsPackage.cs重命名为ResourcePackage.cs
-  //YooAssets.CreateAssetsPackage()重命名为YooAssets.CreatePackage()
-  //YooAssets.GetAssetsPackage()重命名为YooAssets.GetPackage()
-  //YooAssets.TryGetAssetsPackage()重命名为YooAssets.TryGetPackage()
-  //YooAssets.HasAssetsPackage()重命名为YooAssets.HasPackage()
-  ```
-
-- 移除了初始化参数:AssetLoadingMaxNumber
-
-## [1.4.8] - 2023-03-10
-
-### Fixed
-
-- 修复了同步加载原生文件,程序卡死的问题。
-- 修复了可编程构建管线,当项目里没有着色器,如果有引用内置着色器会导致打包失败的问题。
-- 修复了在Unity2021.3版本下着色器收集界面错乱的问题。
-
-### Changed
-
-- 优化了打包逻辑,提高构建速度。
-
-- 支持自定义日志处理,方便收集线上问题。
-
-  ```c#
-  public class YooAssets
-  {
-      /// <summary>
-      /// 初始化资源系统
-      /// </summary>
-      /// <param name="logger">自定义日志处理</param>
-      public static void Initialize(ILogger logger = null)
-  }
-  ```
-
-## [1.4.7] - 2023-03-03
-
-### Fixed
-
-- 修复了在运行时资源引用链无效的问题。
-- 修复了在构建过程中发生异常后进度条未消失的问题。
-- 修复了使用SBP构建管线,如果有原生文件会导致打包失败的问题。
-
-### Changed
-
-- 支持自定义下载请求
-
-  ```c#
-  /// <summary>
-  /// 设置下载系统参数,自定义下载请求
-  /// </summary>
-  public static void SetDownloadSystemUnityWebRequest(DownloadRequestDelegate requestDelegate)
-  ```
-
-- 优化了打包时资源包引用关系计算的逻辑。
-
-- 优化了缓存系统初始化逻辑,支持分帧获取所有缓存文件。
-
-- 优化了缓存系统的存储目录结构,提高了文件夹查询速度。
-
-- 优化了在资源收集界面,点击查看Collector主资源列表卡顿问题。
-
-- 优化了资源对象加载耗时统计的逻辑,现在更加准确了。
-
-- 优化了资源加载器查询逻辑。
-
-- 优化了资源下载系统,下载文件的验证支持了多线程。
-
-- 着色器变种收集界面增加单次照射数量的控制。
-
-## [1.4.6-preview] - 2023-02-22
-
-### Changed
-
-- EVerifyLevel新增Middle级别。
-
-  ```c#
-  public enum EVerifyLevel
-  {
-      /// <summary>
-      /// 验证文件存在
-      /// </summary>
-      Low,
-      
-      /// <summary>
-      /// 验证文件大小
-      /// </summary>
-      Middle,
-  
-      /// <summary>
-      /// 验证文件大小和CRC
-      /// </summary>
-      High,
-  }
-  ```
-
-- 补丁清单的资源包列表新增引用链。
-
-  (解决复杂依赖关系下,错误卸载资源包的问题)
-
-- 缓存系统支持后缀格式存储。
-
-  (解决原生文件没有后缀格式的问题)
-
-- 收集界面增加用户自定义数据栏。
-
-## [1.4.5-preview] - 2023-02-17
-
-### Fixed
-
-- (#67)修复了报告查看界面在Unity2021.3上的兼容性问题。
-- (#66)修复了在Unity2021.3上编辑器模拟模式运行报错的问题。
-
-### Changed
-
-- 接口变更:IPackRule
-
-  ````c#
-  /// <summary>
-  /// 资源打包规则接口
-  /// </summary>
-  public interface IPackRule
-  {
-      /// <summary>
-      /// 获取打包规则结果
-      /// </summary>
-      PackRuleResult GetPackRuleResult(PackRuleData data);
-  
-      /// <summary>
-      /// 是否为原生文件打包规则
-      /// </summary>
-      bool IsRawFilePackRule();
-  }
-  ````
-
-## [1.4.4-preview] - 2023-02-14
-
-### Fixed
-
-- (#65)修复了AssetBundle构建宏逻辑错误。
-- 修复了AssetBundle加载宏逻辑错误。
-
-## [1.4.3-preview] - 2023-02-10
-
-全新的缓存系统!
-
-### Fixed
-
-- 修复了WebGL平台本地文件验证报错。
-- 修复了WEBGL平台加载原生文件失败的问题。
-- 修复了通过Handle句柄查询资源包下载进度为零的问题。
-
-### Changed
-
-- 着色器变种收集增加分批次处理功能。
-- Unity2021版本开始不再支持内置构建管线。
-
-### Removed
-
-- 太空战机DEMO移除了BetterStreamingAssets插件。
-
-## [1.4.2-preview] - 2023-01-03
-
-### Fixed
-
-- 修复了清单解析异步操作的进度条变化错误。
-- 修复了更新资源清单错误计算超时时间的问题。
-
-## [1.4.1-preview] - 2022-12-26
-
-### Fixed
-
-- 修复了开启UniqueBundleName选项后,SBP构建报错的问题。
-
-### Added
-
-- 新增了AssetsPackage.PreDownloadPackageAsync()方法
-
-  ````c#
-  /// <summary>
-  /// 预下载指定版本的包裹资源
-  /// </summary>
-  /// <param name="packageVersion">下载的包裹版本</param>
-  /// <param name="timeout">超时时间(默认值:60秒)</param>
-  public PreDownloadPackageOperation PreDownloadPackageAsync(string packageVersion, int timeout = 60)
-  ````
-
-- 新增了OperationHandleBase.GetDownloadReport()方法
-
-  ````c#
-  /// <summary>
-  /// 获取下载报告
-  /// </summary>
-  public DownloadReport GetDownloadReport();
-  ````
-
-### Changed
-
-- 优化了资源清单更新流程,支持缓存下载的清单。
-- 优化了清单文件的解析流程,支持分帧解析避免卡顿。
-- 优化了缓存文件的验证流程,支持分帧处理。
-- 初始化的时候支持覆盖安装检测,然后清理所有的缓存清单文件。
-- ClearPackageUnusedCacheFilesAsync重名为ClearUnusedCacheFilesAsync
-
-## [1.4.0-preview] - 2022-12-04
-
-### Fixed
-
-- (#46)修复了资源包初始化失败之后,再次初始化发生异常的问题。
-- 修复了在初始化失败的之后,销毁YooAssets会报异常的问题。
-
-### Changed
-
-- 优化了资源收集界面,可以选择显示中文别名。
-- **优化了补丁清单序列化方式,由文本数据修改为二进制数据。**
-- 资源操作句柄增加using支持。
-
-## [1.3.7] - 2022-11-26
-
-全新的太空战机Demo !
-
-### Fixed
-
-- (#45)修复了package列表更新触发的异常。
-
-### Added
-
-- 新增了YooAssets.Destroy()资源系统销毁方法。
-
-  ```C#
-  /// <summary>
-  /// 销毁资源系统
-  /// </summary>
-  public static void Destroy();
-  ```
-
-### Changed
-
-- 优化了资源收集规则,原生文件打包名称现在已经包含文件后缀名。
-- 优化了资源收集规则,非原生文件收集器自动移除Unity无法识别的文件。
-- 优化了调试信息窗口,列表元素的加载状态显示为文本。
-
-## [1.3.5] - 2022-11-19
-
-### Fixed
-
-- 修复了同步接口加载加密文件失败的问题。
-
-### Added
-
-- 新增了方法AssetsPackage.ClearPackageUnusedCacheFilesAsync()
-
-  ```c#
-  /// <summary>
-  /// 清理本地包裹未使用的缓存文件
-  /// </summary>
-  public ClearPackageUnusedCacheFilesOperation ClearPackageUnusedCacheFilesAsync()
-  ```
-
-- 新增了方法AssetsPackage.LoadRawFileAsync()
-
-  ```c#
-  /// <summary>
-  /// 异步加载原生文件
-  /// </summary>
-  /// <param name="location">资源的定位地址</param>
-  public RawFileOperationHandle LoadRawFileAsync(string location)
-  ```
-
-- 新增了方法AssetsPackage.LoadRawFileSync()
-
-  ```c#
-  /// <summary>
-  /// 同步加载原生文件
-  /// </summary>
-  /// <param name="location">资源的定位地址</param>
-  public RawFileOperationHandle LoadRawFileSync(string location)
-  ```
-
-### Changed
-
-- 重命名AssetsPackage.UpdateStaticVersionAsync()为AssetsPackage.UpdatePackageVersionAsync();
-- 重命名AssetsPackage.UpdateManifestAsync()为AssetsPackage.UpdatePackageManifestAsync();
-
-### Removed
-
-- 移除了方法YooAssets.ClearUnusedCacheFiles()
-- 移除了方法AssetsPackage.GetRawFileAsync()
-
-## [1.3.4] - 2022-11-04
-
-### Fixed
-
-- (#29)修复了EditorHelper中根据guid找uxml有时候会出错的问题。
-- (#37)修复了在修改GroupName和GroupDesc时,左侧Group栏显示没刷新的问题。
-- (#38)修复了工程里没有shader的话,SBP构建会报异常的问题。
-
-### Added
-
-- 新增了AssetsPackage.CheckPackageContentsAsync()方法
-
-  ```c#
-  /// <summary>
-  /// 检查本地包裹内容的完整性
-  /// </summary>
-  public CheckPackageContentsOperation CheckPackageContentsAsync()
-  ```
-
-### Changed
-
-- 优化了HostPlayMode的初始化逻辑,优先读取沙盒内的清单,如果不存在则读取内置清单。
-
-- 重写了文件的加密和解密逻辑。
-
-  ```c#
-  public interface IDecryptionServices
-  {
-      /// <summary>
-      /// 文件偏移解密方法
-      /// </summary>
-      ulong LoadFromFileOffset(DecryptFileInfo fileInfo);
-  
-      /// <summary>
-      /// 文件内存解密方法
-      /// </summary>
-      byte[] LoadFromMemory(DecryptFileInfo fileInfo);
-  
-      /// <summary>
-      /// 文件流解密方法
-      /// </summary>
-      System.IO.FileStream LoadFromStream(DecryptFileInfo fileInfo);
-  
-      /// <summary>
-      /// 文件流解密的托管缓存大小
-      /// </summary>
-      uint GetManagedReadBufferSize();
-  }
-  ```
-
-- AssetBundleBuilder界面增加了构建版本选项。
-
-### Removed
-
-- 移除了AssetsPackage.WeaklyUpdateManifestAsync()方法。
-
-## [1.3.3] - 2022-10-27
-
-### Fixed
-
-- 修复了资源回收方法无效的问题。
-
-### Added
-
-- 新增了PackageVersion构建参数。
-
-  ````c#
-  public class BuildParameters
-  {
-      /// <summary>
-      /// 构建的包裹版本
-      /// </summary>
-      public string PackageVersion;  
-  }
-  ````
-
-### Changed
-
-- AssetBundleDebugger窗口增加了包裹名称显示列。
-- AssetBundleDebugger窗口增加资源对象的加载耗时统计和显示。
-- AssetBundleDebugger窗口增加帧调试数据导出功能。
-- AssetBundleBuilder构建流程增加输出目录文件路径过长的检测。
-- 下载器返回的错误提示增加HTTP Response Code。
-- UpdateStaticVersionOperation.PackageCRC重名为UpdateStaticVersionOperation.PackageVersion。
-- AssetPackage.GetHumanReadableVersion()重名为AssetPackage.GetPackageVersion()
-
-## [1.3.2] - 2022-10-22
-
-### Fixed
-
-- 修复了AssetBundleCollector界面点击修复按钮界面没有刷新的问题。
-
-### Added
-
-- 新增了自定义证书认证方法。
-
-  ````c#
-  public static class YooAssets
-  {
-      /// <summary>
-      /// 设置下载系统参数,自定义的证书认证实例
-      /// </summary>
-      public static void SetDownloadSystemCertificateHandler(UnityEngine.Networking.CertificateHandler instance)
-  }
-  ````
-
-- 新增了下载失败后清理文件的方法。
-
-  ````c#
-  public static class YooAssets
-  {
-      /// <summary>
-      /// 设置下载系统参数,下载失败后清理文件的HTTP错误码
-      /// </summary>
-      public static void SetDownloadSystemClearFileResponseCode(List<long> codes)
-  }
-  ````
-
-- 新增了检查资源定位地址是否有效的方法。
-
-  ```c#
-  public class AssetsPackage
-  {
-      /// <summary>
-      /// 检查资源定位地址是否有效
-      /// </summary>
-      /// <param name="location">资源的定位地址</param>
-      public bool CheckLocationValid(string location)
-  }
-  ```
-
-### Removed
-
-- 移除了ILocationServices接口类和初始化字段。
-- 移除了AssetPackage.GetAssetPath(string location)方法。
-- 移除了BuildParameters.EnableAddressable字段。
-
-### Changed
-
-- AssetBundleCollector配置增加了UniqueBundleName设置,用于解决不同包裹之间Bundle名称冲突的问题。
-
-## [1.3.1] - 2022-10-18
-
-### Fixed
-
-- 修复了原生文件每次获取都重复拷贝的问题。
-- 修复了断点续传下载字节数统计不准确的问题。
-
-### Added
-
-- 所有下载相关方法增加超时判断参数。
-
-- 新增首包资源文件拷贝选项。
-
-  ```c#
-  public class BuildParameters
-  {
-      /// <summary>
-      /// 拷贝内置资源选项
-      /// </summary>
-      public ECopyBuildinFileOption CopyBuildinFileOption = ECopyBuildinFileOption.None;
-  
-      /// <summary>
-      /// 拷贝内置资源的标签
-      /// </summary>
-      public string CopyBuildinFileTags = string.Empty;  
-  }
-  ```
-
-- 新增资源包初始化查询字段。
-
-  ```c#
-  public class AssetsPackage
-  {
-      /// <summary>
-      /// 初始化状态
-      /// </summary>
-      public EOperationStatus InitializeStatus
-  }
-  ```
-
-- 增加获取人类可读的版本信息。
-
-  ````c#
-  public class AssetsPackage
-  {
-      /// <summary>
-      /// 获取人类可读的版本信息
-      /// </summary>
-      public string GetHumanReadableVersion()
-  }
-  ````
-
-- 新增资源缓存清理方法。
-
-  ```c#
-  public static class YooAssets
-  {
-      /// <summary>
-      /// 清理未使用的缓存文件
-      /// </summary>
-      public static ClearUnusedCacheFilesOperation ClearUnusedCacheFiles()  
-  }
-  ```
-
-- 异步操作类新增繁忙查询方法。
-
-  ````c#
-  public abstract class GameAsyncOperation
-  {
-      /// <summary>
-      /// 异步操作系统是否繁忙
-      /// </summary>
-      protected bool IsBusy() 
-  }
-  ````
-
-### Removed
-
-- 移除了AssetsPackage.IsInitialized()方法。
-- 移除了YooAssets.ClearAllCacheFiles()方法。
-
-### Changed
-
-- YooAssetsPackage类重名为AssetsPackage
-
-## [1.3.0-preview] - 2022-10-08
-
-该预览版本提供了分布式构建的功能,用于解决分工程或分内容构建的问题。
-
-### Added
-
-- 新增方法设置异步系统的每帧允许运行的最大时间切片。
-
-  ```c#
-  /// <summary>
-  /// 设置异步系统的每帧允许运行的最大时间切片(单位:毫秒)
-  /// </summary>
-  public static void SetOperationSystemMaxTimeSlice(long milliseconds)
-  ```
-
-- 新增方法设置缓存系统的已经缓存文件的校验等级。
-
-  ```c#
-  /// <summary>
-  /// 设置缓存系统的已经缓存文件的校验等级
-  /// </summary>
-  public static void SetCacheSystemCachedFileVerifyLevel(EVerifyLevel verifyLevel)
-  ```
-
-- 新增方法设置下载系统的断点续传功能的文件大小。
-
-  ````C#
-  /// <summary>
-  /// 启用下载系统的断点续传功能的文件大小
-  /// </summary>
-  public static void SetDownloadSystemBreakpointResumeFileSize(int fileBytes)
-  ````
-
-### Removed
-
-- 移除了资源版本号相关概念的代码。
-- 移除了TaskCopyBuildinFiles节点在构建流程里。
-- 移除了YooAssets.ClearUnusedCacheFiles()方法。
-- 移除了初始化参数 InitializeParameters.ClearCacheOnDirty
-- 移除了初始化参数 InitializeParameters.OperationSystemMaxTimeSlice
-- 移除了初始化参数 InitializeParameters.BreakpointResumeFileSize
-- 移除了初始化参数 InitializeParameters.VerifyLevel
-
-## [1.2.4] - 2022-09-22
-
-### Fixed
-
-- 修复了加密文件下载验证失败的问题。
-- 修复了可编程构建管线下模拟构建模式报错的问题。
-
-### Changed
-
-- 可编程构建管线强制使用增量构建模式。
-- 移除了对Gizmos资源的打包限制。
-- AssetBundleCollector窗口增加配置表修复功能。
-
-## [1.2.3] - 2022-09-09
-
-### Fixed
-
-- 修复了资源收集器无法识别.bank音频文件格式。
-
-### Changed
-
-- **HostPlayMode正式支持WebGL平台。**
-- AssetBundleCollector里的着色器收集选项已经移除,现在必定收集。
-- AssetBundleCollector修改了默认的打包规则类。
-- AssetBundleBuilder现在构建结果增加补丁包目录。
-- 更新了UniTask的Sample。
-- 优化了缓存系统的代码结构。
-- 使用了新的断点续传下载器。
-
-### Added
-
-- 增加清理缓存资源的异步操作类。
-
-````c#
-/// <summary>
-/// 清空未被使用的缓存文件
-/// </summary>
-public static ClearUnusedCacheFilesOperation ClearUnusedCacheFiles();
-````
-
-## [1.2.2] - 2022-07-31
-
-### Fixed
-
-- 修复了加载多个相同的子场景而无法全部卸载的问题。
-
-### Changed
-
-- ShaderVariantCollecor支持在CI上调用运行。
-
-- 资源补丁清单增加文件版本校验功能。
-
-- AssetBundleBuilder现在构建结果可以查询构建失败信息。
-
-- AssetBundleBuilder现在资源包文件名称样式提供选择功能。
-
-  ````c#
-  class BuildParameters
-  {
-      /// <summary>
-      /// 补丁文件名称的样式
-      /// </summary>
-      public EOutputNameStyle OutputNameStyle;
-  }
-  ````
-
-### Added
-
-- 增加获取资源信息新方法。
-
-  ````c#
-  /// <summary>
-  /// 获取资源信息
-  /// </summary>
-  /// <param name="location">资源的定位地址</param>
-  public static AssetInfo GetAssetInfo(string location);
-  ````
-
-## [1.2.1] - 2022-07-23
-
-### Fixed
-
-- (#25)修复了资源文件不存在返回的handle无法完成的问题。
-- (#26)修复多个场景打进一个AB包时,卸载子场景时抛出异常。
-
-### Changed
-
-- 构建报告里增加主资源总数的统计。
-- 资源构建系统里修改了内置构建管线的构建结果验证逻辑,移除了对中文路径的检测。
-- 资源构建系统里移除了对增量更新初次无法构建的限制。
-- 优化了缓存验证逻辑,不期望删除断点续传的资源文件。
-- 资源构建系统里SBP构建参数增加了缓存服务器的地址和端口。
-
-## [1.2.0] - 2022-07-18
-
-### Fixed
-
-- 修复了ShaderVariantCollection刷新不及时问题。
-
-### Changed
-
-- 资源收集忽略了Gizmos资源文件。
-- 解密服务接口增加解密文件信息参数。
-- 资源收集窗体增加配置保存按钮。
-- 资源构建窗体增加配置保存按钮。
-
-### Added
-
-- 资源构建模块增加了可编程构建管线(SBP)的支持,开发者可以在内置构建管线和可编程构建管线之间自由选择,零修改成本。
-
-## [1.1.1] - 2022-07-07
-
-### Fixed
-
-- 修复了AssetBundleDebugger窗口,View下拉页签切换无效的问题。
-- 修复了在Unity2020.3版本下UniTask在真机上的一个IL2CPP相关的错误。
-
-### Changed
-
-- 优化了AssetBundleDebugger窗口,增加了帧数显示以及回放功能。
-- 优化了AssetBundleBuilder的代码结构。
-- 增强了YooAssets.GetRawFileAsync()方法的容错。
-
-### Added
-
-- 新增了OperationHandleBase.GetAssetInfo()方法。
-
-  ````c#
-  /// <summary>
-  /// 获取资源信息
-  /// </summary>
-  public AssetInfo GetAssetInfo();
-  ````
-
-- 新增了AssetOperationHandle.GetAssetObjet<TAsset>()方法。
-
-  ````c#
-  /// <summary>
-  /// 获取资源对象
-  /// </summary>
-  /// <typeparam name="TAsset">资源类型</typeparam>
-  public TAsset GetAssetObjet<TAsset>();
-  ````
-
-- 新增了弱联网情况下加载补丁清单方法。
-
-  ````c#
-  /// <summary>
-  /// 弱联网情况下加载补丁清单
-  /// 注意:当指定版本内容验证失败后会返回失败。
-  /// </summary>
-  /// <param name="resourceVersion">指定的资源版本</param>
-  public static UpdateManifestOperation WeaklyUpdateManifestAsync(int resourceVersion);
-  ````
-
-### Removed
-
-- 离线运行模式(OfflinePlayMode)下移除了资内置资源解压相关逻辑。
-- 移除了初始化参数:AutoReleaseGameObjectHandle及相关代码逻辑。
-
-## [1.1.0] - 2022-06-23
-
-### Fixed
-
-- 修复了AssetBundleCollector窗口,在切换EnableAddressable时未及时刷新界面的问题。
-- 修复了AssetBundleCollector窗口,资源过滤器CollectSprite无效的问题。
-- 修复了AssetBundleCollector窗口,无法正常预览StaticAssetCollector的资源列表的问题。
-- 修复了在离线模式下原生文件每次都从包内加载的问题。
-
-### Changed
-
-- 变更了共享资源打包机制。
-- AssetBundleCollector窗口增加了分组禁用功能。
-- AssetBundleDebugger窗口增加了真机远程调试功能。
-- AssetBundleBuilder窗口在构建成功后自动显示构建文件夹。
-- DownloaderOperation.OnDownloadFileFailedCallback委托变更为OnDownloadErrorCallback委托。
-
-### Added
-
-- 新增UpdateManifestOperation.FoundNewManifest字段。
-- 新增DownloaderOperation.OnStartDownloadFileCallback委托。
-- 新增AssetInfo.Address字段。
-- 新增YooAssets.IsInitialized字段。
-- 新增YooAssets初始化参数。
-
-  ````c#
-  /// <summary>
-  /// 下载文件校验等级
-  /// </summary>
-  public EVerifyLevel VerifyLevel = EVerifyLevel.High;
-  ````
-
-- 新增YooAssets获取资源完成路径的方法。
-
-  ````c#
-  /// <summary>
-  /// 获取资源路径
-  /// </summary>
-  /// <param name="location">资源的定位地址</param>
-  /// <returns>如果location地址无效,则返回空字符串</returns>
-  public static string GetAssetPath(string location);
-  ````
-
-- 新增YooAssets初始化参数。
-
-  ```c#
-  /// <summary>
-  /// 自动释放游戏对象所属资源句柄
-  /// 说明:通过资源句柄实例化的游戏对象在销毁之后,会自动释放所属资源句柄。
-  /// </summary>
-  public bool AutoReleaseGameObjectHandle = false;
-  ```
-
-## [1.0.10] - 2022-05-22
-
-### Fixed
-
-- 修复了资源收集配置存在多个的时候,导致后续无法打开窗口的问题。
-- 修复了在编辑器模拟模式下加载精灵图片失败的问题。
-- 修复了在Unity2019版本无法识别配置文件的问题。
-
-### Changed
-
-- 资源构建增加内置资源文件(首包资源文件)拷贝的选项。
-- 补丁下载器增加暂停方法和恢复方法。
-- 在资源收集界面,对Collector的增加和删除支持撤销和恢复操作。
-
-## [1.0.9] - 2022-05-14
-
-### Fixed
-
-- 修复了YooAssets.GetAssetInfos(string Tag)方法返回了无关的资源信息的问题。
-
-### Changed
-
-- 编辑器下的模拟运行模式,不再依赖配置里的构建版本。
-- 更新资源清单结构,资源对象类增加分类标签。
-- 优化了资源工具相关配置文件的加载方式和途径,这些配置文件可以放置在任何目录下。
-- 优化了Location无效后的错误报告方式。
-- 优化了资源包的构建参数,现在始终开启DisableLoadAssetByFileName,帮助减小运行时的内存。
-- YooAssets.ProcessOperation()重命名为YooAssets.StartOperation()
-
-### Added
-
-- 新增YooAssets.IsNeedDownloadFromRemote()方法。
-
-  ````c#
-  public static bool IsNeedDownloadFromRemote(string location);
-  ````
-
-- 新增获取所有子资源对象的方法。
-
-  ````c#
-  class SubAssetsOperationHandle
-  {
-      public TObject[] GetSubAssetObjects<TObject>();
-  }
-  ````
-
-### Removed
-
-- YooAssets.GetBundleInfo()方法已经移除。
-
-## [1.0.8] - 2022-05-08
-
-### Fixed
-
-- 修复了资源收集器导出配置文件时没有导出公共设置。
-- 修复了不兼容Unity2018版本的错误。
-
-### Changed
-
-- AssetBundleGrouper窗口变更为AssetBundleCollector窗口。
-- **优化了编辑器下模拟运行的初始化速度**。
-- **优化了资源收集窗口打开时卡顿的问题**。
-- 资源收集XML配表支持版本兼容。
-- 资源报告查看窗口支持预览AssetBundle文件内容的功能。
-- 完善了对UniTask的支持。
-- YooAssets所有接口支持初始化容错检测。
-
-### Added
-
-- 异步操作类增加进度查询字段。
-
-  ```c#
-  class AsyncOperationBase
-  {
-      /// <summary>
-      /// 处理进度
-      /// </summary>
-      public float Progress { get; protected set; } 
-  }
-  ```
-
-- 增加开启异步操作的方法。
-
-  ```c#
-  /// <summary>
-  /// 开启一个异步操作
-  /// </summary>
-  /// <param name="operation">异步操作对象</param>
-  public static void ProcessOperaiton(GameAsyncOperation operation)
-  ```
-
-- 新增编辑器下模拟模式的初始化参数。
-
-  ````c#
-  /// <summary>
-  /// 用于模拟运行的资源清单路径
-  /// 注意:如果路径为空,会自动重新构建补丁清单。
-  /// </summary>
-  public string SimulatePatchManifestPath;
-  ````
-
-- 新增通用的初始化参数。
-
-  ```c#
-  /// <summary>
-  /// 资源定位地址大小写不敏感
-  /// </summary>
-  public bool LocationToLower = false;
-  ```
-
-## [1.0.7] - 2022-05-04
-
-### Fixed
-
-- 修复了异步操作系统的Task再次等待无效的问题。
-
-### Changed
-
-- YooAssets.LoadRawFileAsync()方法重新命名为YooAssets.GetRawFileAsync()
-- YooAssetSetting文件夹支持了全路径搜索定位。
-- 优化了打包的核心逻辑,对依赖资源进行自动划分,以及支持设置依赖资源收集器。
-- 初始化的时候,删除验证失败的资源文件。
-- 构建报告浏览窗口支持排序功能。
-- 着色器变种收集工具支持了配置缓存。
-
-### Added
-
-- 支持可寻址资源定位系统,包括编辑器和运行时环境。
-- 增加快速构建模式,用于EditorPlayMode完美模拟线上环境。
-- 增加了Window Dock功能,已打开的界面会自动停靠在一个窗体下。
-- 增加一个新的打包规则:PackTopDirectory。
-- 增加获取资源信息的方法。
-  ```c#
-  public static AssetInfo[] GetAssetInfos(string tag)
-  ```
-- 增加补丁下载器下载全部资源的方法。
-  ```c#
-  public static PatchDownloaderOperation CreatePatchDownloader(int downloadingMaxNumber, int failedTryAgain)
-  ```
-- 增加指定资源版本的资源更新下载方法。
-  ```c#
-  public static UpdatePackageOperation UpdatePackageAsync(int resourceVersion, int timeout = 60)
-  ```
-
-### Removed
-
-- 移除了自动释放资源的初始化参数。
-
-## [1.0.6] - 2022-04-26
-
-### Fixed
-
-- 修复工具界面显示异常在Unity2021版本下。
-
-### Changed
-
-- 操作句柄支持错误信息查询。
-- 支持UniTask异步操作库。
-- 优化类型搜索方式,改为全域搜索类型。
-- AssetBundleGrouper窗口添加和移除Grouper支持操作回退。
-
-## [1.0.5] - 2022-04-22
-
-### Fixed
-
-- 修复了非主动收集的着色器没有打进统一的着色器资源包的问题。
-- 修复了单个收集的资源对象没有设置依赖资源列表的问题。
-- 修复Task异步加载一直等待的问题。
-
-### Changed
-
-- 资源打包的过滤文件列表增加cginc格式。
-- 增加编辑器扩展的支持,第三方实现YooAsset插件。
-- 优化原生文件加载逻辑,支持离线运行模式和编辑器运行模式。
-- 优化场景卸载逻辑,在加载新的主场景的时候自动卸载已经加载的所有场景。
-- 支持演练构建模式,在不生成资源包的情况下快速构建查看结果。
-- 新增调试信息,出生场景和出生时间。
-
-## [1.0.4] - 2022-04-18
-
-### Fixed
-
-- 修复资源清单附加版本之后引发的一个流程错误。
-- 修复原生文件拷贝目录不存导致的加载失败。
-
-### Changed
-
-- 在编辑器下检测资源路径是否合法并警告。
-- 完善原生文件异步加载接口。
-
-## [1.0.3] - 2022-04-14
-
-### Fixed
-
-- 修复了AssetBundleDebugger窗口的BundleView视口下,Using列表显示不完整的问题。
-- 修复了AssetBundleDebugger窗口的BundleView视口下,Bundle列表内元素重复的问题。
-- 修复了特殊情况下依赖的资源包列表里包含主资源包的问题。
-
-### Changed
-
-- 实例化GameObject的时候,如果没有传递坐标和角度则使用默认值。
-- 优化了资源分组配置保存策略,修改为窗口关闭时保存。
-- 简化了资源版本概念,降低学习成本,统一了CDN上的目录结构。
-- 资源定位接口扩展,方便开发可寻址资产定位功能。
-
-### Added
-
-- 离线运行模式支持WEBGL平台。
-- 保留构建窗口界面的配置数据。
-
-## [1.0.2] - 2022-04-07
-
-### Fixed
-
-- 修复在资源加载完成回调内释放自身资源句柄时的异常报错。
-- 修复了资源分组在特殊情况下打包报错的问题。
-
-### Changed
-
-- StreamingAssets目录下增加了用于存放打包资源的总文件夹。
-
-## [1.0.1] - 2022-04-07
-
-### Fixed
-
-- 修复Assets目录下存在多个YooAsset同名文件夹时,工具窗口无法显示的问题。
-- 修复通过Packages导入YooAsset,工具窗口无法显示的问题。
-
-## [1.0.0] - 2022-04-05
-*Compatible with Unity 2019.4*
-

+ 0 - 7
Unity/Packages/YooAsset/CHANGELOG.md.meta

@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: db680274cf006c548abff57b7e1894b4
-TextScriptImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Unity/Packages/YooAsset/Editor/AssetBundleBuilder.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 1fdecc5500229d44887425ce619352fc
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 112
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilder.cs

@@ -1,112 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Linq;
-using UnityEngine;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	public class AssetBundleBuilder
-	{
-		private readonly BuildContext _buildContext = new BuildContext();
-
-		/// <summary>
-		/// 构建资源包
-		/// </summary>
-		public BuildResult Run(BuildParameters buildParameters, List<IBuildTask> buildPipeline)
-		{
-			// 检测构建参数是否为空
-			if (buildParameters == null)
-				throw new Exception($"{nameof(buildParameters)} is null !");
-
-			// 检测构建参数是否为空
-			if (buildPipeline.Count == 0)
-				throw new Exception($"Build pipeline is empty !");	
-
-			// 清空旧数据
-			_buildContext.ClearAllContext();
-
-			// 构建参数
-			var buildParametersContext = new BuildParametersContext(buildParameters);
-			_buildContext.SetContextObject(buildParametersContext);
-
-			// 初始化日志
-			BuildLogger.InitLogger(buildParameters.EnableLog);
-
-			// 执行构建流程
-			var buildResult = BuildRunner.Run(buildPipeline, _buildContext);
-			if (buildResult.Success)
-			{
-				buildResult.OutputPackageDirectory = buildParametersContext.GetPackageOutputDirectory();
-				BuildLogger.Log($"{buildParameters.BuildMode} pipeline build succeed !");
-			}
-			else
-			{
-				BuildLogger.Warning($"{buildParameters.BuildMode} pipeline build failed !");
-				BuildLogger.Error($"Build task failed : {buildResult.FailedTask}");
-				BuildLogger.Error(buildResult.ErrorInfo);
-			}
-
-			return buildResult;
-		}
-
-		/// <summary>
-		/// 构建资源包
-		/// </summary>
-		public BuildResult Run(BuildParameters buildParameters)
-		{
-			var buildPipeline = GetDefaultBuildPipeline(buildParameters.BuildPipeline);
-			return Run(buildParameters, buildPipeline);
-		}
-
-		/// <summary>
-		/// 获取默认的构建流程
-		/// </summary>
-		private List<IBuildTask> GetDefaultBuildPipeline(EBuildPipeline buildPipeline)
-		{
-			// 获取任务节点的属性集合
-			if (buildPipeline == EBuildPipeline.BuiltinBuildPipeline)
-			{
-				List<IBuildTask> pipeline = new List<IBuildTask>
-				{
-					new TaskPrepare(), //前期准备工作
-					new TaskGetBuildMap(), //获取构建列表
-					new TaskBuilding(), //开始执行构建
-					new TaskCopyRawFile(), //拷贝原生文件
-					new TaskVerifyBuildResult(), //验证构建结果
-					new TaskEncryption(), //加密资源文件
-					new TaskUpdateBundleInfo(), //更新资源包信息
-					new TaskCreateManifest(), //创建清单文件
-					new TaskCreateReport(), //创建报告文件
-					new TaskCreatePackage(), //制作包裹
-					new TaskCopyBuildinFiles(), //拷贝内置文件
-				};
-				return pipeline;
-			}
-			else if (buildPipeline == EBuildPipeline.ScriptableBuildPipeline)
-			{
-				List<IBuildTask> pipeline = new List<IBuildTask>
-				{
-					new TaskPrepare(), //前期准备工作
-					new TaskGetBuildMap(), //获取构建列表
-					new TaskBuilding_SBP(), //开始执行构建
-					new TaskCopyRawFile(), //拷贝原生文件
-					new TaskVerifyBuildResult_SBP(), //验证构建结果
-					new TaskEncryption(), //加密资源文件
-					new TaskUpdateBundleInfo(), //更新补丁信息
-					new TaskCreateManifest(), //创建清单文件
-					new TaskCreateReport(), //创建报告文件
-					new TaskCreatePackage(), //制作补丁包
-					new TaskCopyBuildinFiles(), //拷贝内置文件
-				};
-				return pipeline;
-			}
-			else
-			{
-				throw new NotImplementedException();
-			}
-		}
-	}
-}

+ 0 - 28
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderHelper.cs

@@ -1,28 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using UnityEngine;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	public static class AssetBundleBuilderHelper
-	{
-		/// <summary>
-		/// 获取默认的输出根路录
-		/// </summary>
-		public static string GetDefaultBuildOutputRoot()
-		{
-			string projectPath = EditorTools.GetProjectPath();
-			return $"{projectPath}/Bundles";
-		}
-
-		/// <summary>
-		/// 获取流文件夹路径
-		/// </summary>
-		public static string GetDefaultStreamingAssetsRoot()
-		{
-			return $"{Application.dataPath}/StreamingAssets/{YooAssetSettings.DefaultYooFolderName}/";
-		}
-	}
-}

+ 0 - 49
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderSetting.cs

@@ -1,49 +0,0 @@
-using System;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	[CreateAssetMenu(fileName = "AssetBundleBuilderSetting", menuName = "YooAsset/Create AssetBundle Builder Settings")]
-	public class AssetBundleBuilderSetting : ScriptableObject
-	{
-		/// <summary>
-		/// 构建管线
-		/// </summary>
-		public EBuildPipeline BuildPipeline = EBuildPipeline.BuiltinBuildPipeline;
-
-		/// <summary>
-		/// 构建模式
-		/// </summary>
-		public EBuildMode BuildMode = EBuildMode.ForceRebuild;
-
-		/// <summary>
-		/// 构建的包裹名称
-		/// </summary>
-		public string BuildPackage = string.Empty;
-
-		/// <summary>
-		/// 压缩方式
-		/// </summary>
-		public ECompressOption CompressOption = ECompressOption.LZ4;
-
-		/// <summary>
-		/// 输出文件名称样式
-		/// </summary>
-		public EOutputNameStyle OutputNameStyle = EOutputNameStyle.HashName;
-
-		/// <summary>
-		/// 首包资源文件的拷贝方式
-		/// </summary>
-		public ECopyBuildinFileOption CopyBuildinFileOption = ECopyBuildinFileOption.None;
-
-		/// <summary>
-		/// 首包资源文件的标签集合
-		/// </summary>
-		public string CopyBuildinFileTags = string.Empty;
-
-		/// <summary>
-		/// 加密类名称
-		/// </summary>
-		public string EncyptionClassName = string.Empty;
-	}
-}

+ 0 - 49
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderSettingData.cs

@@ -1,49 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	public class AssetBundleBuilderSettingData
-	{
-		private static AssetBundleBuilderSetting _setting = null;
-		public static AssetBundleBuilderSetting Setting
-		{
-			get
-			{
-				if (_setting == null)
-					LoadSettingData();
-				return _setting;
-			}
-		}
-
-		/// <summary>
-		/// 配置数据是否被修改
-		/// </summary>
-		public static bool IsDirty { set; get; } = false;
-
-		/// <summary>
-		/// 加载配置文件
-		/// </summary>
-		private static void LoadSettingData()
-		{
-			_setting = SettingLoader.LoadSettingData<AssetBundleBuilderSetting>();
-		}
-
-		/// <summary>
-		/// 存储文件
-		/// </summary>
-		public static void SaveFile()
-		{
-			if (Setting != null)
-			{
-				IsDirty = false;
-				EditorUtility.SetDirty(Setting);
-				AssetDatabase.SaveAssets();
-				Debug.Log($"{nameof(AssetBundleBuilderSetting)}.asset is saved!");
-			}
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderSettingData.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 24698266f028e4a47bb88f091fd64547
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 215
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderTools.cs

@@ -1,215 +0,0 @@
-using System;
-using System.IO;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEditor;
-using UnityEditor.Animations;
-
-namespace YooAsset.Editor
-{
-	public static class AssetBundleBuilderTools
-	{
-		/// <summary>
-		/// 检测所有损坏的预制体文件
-		/// </summary>
-		public static void CheckCorruptionPrefab(List<string> searchDirectorys)
-		{
-			if (searchDirectorys.Count == 0)
-				throw new Exception("路径列表不能为空!");
-
-			// 获取所有资源列表
-			int checkCount = 0;
-			int invalidCount = 0;
-			string[] findAssets = EditorTools.FindAssets(EAssetSearchType.Prefab, searchDirectorys.ToArray());
-			foreach (string assetPath in findAssets)
-			{
-				UnityEngine.Object prefab = AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object));
-				if (prefab == null)
-				{
-					invalidCount++;
-					Debug.LogError($"发现损坏预制件:{assetPath}");
-				}
-				EditorTools.DisplayProgressBar("检测预制件文件是否损坏", ++checkCount, findAssets.Length);
-			}
-			EditorTools.ClearProgressBar();
-
-			if (invalidCount == 0)
-				Debug.Log($"没有发现损坏预制件");
-		}
-
-		/// <summary>
-		/// 检测所有动画控制器的冗余状态
-		/// </summary>
-		public static void FindRedundantAnimationState(List<string> searchDirectorys)
-		{
-			if (searchDirectorys.Count == 0)
-				throw new Exception("路径列表不能为空!");
-
-			// 获取所有资源列表
-			int checkCount = 0;
-			int findCount = 0;
-			string[] findAssets = EditorTools.FindAssets(EAssetSearchType.RuntimeAnimatorController, searchDirectorys.ToArray());
-			foreach (string assetPath in findAssets)
-			{
-				AnimatorController animator= AssetDatabase.LoadAssetAtPath<AnimatorController>(assetPath);
-				if (FindRedundantAnimationState(animator))
-				{
-					findCount++;
-					Debug.LogWarning($"发现冗余的动画控制器:{assetPath}");
-				}
-				EditorTools.DisplayProgressBar("检测冗余的动画控制器", ++checkCount, findAssets.Length);
-			}
-			EditorTools.ClearProgressBar();
-
-			if (findCount == 0)
-				Debug.Log($"没有发现冗余的动画控制器");
-			else
-				AssetDatabase.SaveAssets();
-		}
-
-		/// <summary>
-		/// 清理所有材质球的冗余属性
-		/// </summary>
-		public static void ClearMaterialUnusedProperty(List<string> searchDirectorys)
-		{
-			if (searchDirectorys.Count == 0)
-				throw new Exception("路径列表不能为空!");
-
-			// 获取所有资源列表
-			int checkCount = 0;
-			int removedCount = 0;
-			string[] findAssets = EditorTools.FindAssets(EAssetSearchType.Material, searchDirectorys.ToArray());
-			foreach (string assetPath in findAssets)
-			{
-				Material mat = AssetDatabase.LoadAssetAtPath<Material>(assetPath);
-				if (ClearMaterialUnusedProperty(mat))
-				{
-					removedCount++;
-					Debug.LogWarning($"材质球已被处理:{assetPath}");
-				}
-				EditorTools.DisplayProgressBar("清理冗余的材质球", ++checkCount, findAssets.Length);
-			}
-			EditorTools.ClearProgressBar();
-
-			if (removedCount == 0)
-				Debug.Log($"没有发现冗余的材质球");
-			else
-				AssetDatabase.SaveAssets();
-		}
-
-
-		/// <summary>
-		/// 清理无用的材质球属性
-		/// </summary>
-		private static bool ClearMaterialUnusedProperty(Material mat)
-		{
-			bool removeUnused = false;
-			SerializedObject so = new SerializedObject(mat);
-			SerializedProperty sp = so.FindProperty("m_SavedProperties");
-
-			sp.Next(true);
-			do
-			{
-				if (sp.isArray == false)
-					continue;
-
-				for (int i = sp.arraySize - 1; i >= 0; --i)
-				{
-					var p1 = sp.GetArrayElementAtIndex(i);
-					if (p1.isArray)
-					{
-						for (int ii = p1.arraySize - 1; ii >= 0; --ii)
-						{
-							var p2 = p1.GetArrayElementAtIndex(ii);
-							var val = p2.FindPropertyRelative("first");
-							if (mat.HasProperty(val.stringValue) == false)
-							{
-								Debug.Log($"Material {mat.name} remove unused property : {val.stringValue}");
-								p1.DeleteArrayElementAtIndex(ii);
-								removeUnused = true;
-							}
-						}
-					}
-					else
-					{
-						var val = p1.FindPropertyRelative("first");
-						if (mat.HasProperty(val.stringValue) == false)
-						{
-							Debug.Log($"Material {mat.name} remove unused property : {val.stringValue}");
-							sp.DeleteArrayElementAtIndex(i);
-							removeUnused = true;
-						}
-					}
-				}
-			}
-			while (sp.Next(false));
-			so.ApplyModifiedProperties();
-			return removeUnused;
-		}
-
-		/// <summary>
-		/// 查找动画控制器里冗余的动画状态机
-		/// </summary>
-		private static bool FindRedundantAnimationState(AnimatorController animatorController)
-		{
-			if (animatorController == null)
-				return false;
-
-			string assetPath = AssetDatabase.GetAssetPath(animatorController);
-
-			// 查找使用的状态机名称
-			List<string> usedStateNames = new List<string>();
-			foreach (var layer in animatorController.layers)
-			{
-				foreach (var state in layer.stateMachine.states)
-				{
-					usedStateNames.Add(state.state.name);
-				}
-			}
-
-			List<string> allLines = new List<string>();
-			List<int> stateIndexList = new List<int>();
-			using (StreamReader reader = File.OpenText(assetPath))
-			{
-				string content;
-				while (null != (content = reader.ReadLine()))
-				{
-					allLines.Add(content);
-					if (content.StartsWith("AnimatorState:"))
-					{
-						stateIndexList.Add(allLines.Count - 1);
-					}
-				}
-			}
-
-			List<string> allStateNames = new List<string>();
-			foreach (var index in stateIndexList)
-			{
-				for (int i = index; i < allLines.Count; i++)
-				{
-					string content = allLines[i];
-					content = content.Trim();
-					if (content.StartsWith("m_Name"))
-					{
-						string[] splits = content.Split(':');
-						string name = splits[1].TrimStart(' '); //移除前面的空格
-						allStateNames.Add(name);
-						break;
-					}
-				}
-			}
-
-			bool foundRedundantState = false;
-			foreach (var stateName in allStateNames)
-			{
-				if (usedStateNames.Contains(stateName) == false)
-				{
-					Debug.LogWarning($"发现冗余的动画文件:{assetPath}={stateName}");
-					foundRedundantState = true;
-				}
-			}
-			return foundRedundantState;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderTools.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: fe50795c51a46884088139b840c1557f
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 359
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.cs

@@ -1,359 +0,0 @@
-#if UNITY_2019_4_OR_NEWER
-using System;
-using System.Linq;
-using System.Collections.Generic;
-using UnityEditor;
-using UnityEngine;
-using UnityEditor.UIElements;
-using UnityEngine.UIElements;
-
-namespace YooAsset.Editor
-{
-	public class AssetBundleBuilderWindow : EditorWindow
-	{
-		[MenuItem("YooAsset/AssetBundle Builder", false, 102)]
-		public static void OpenWindow()
-		{
-			AssetBundleBuilderWindow window = GetWindow<AssetBundleBuilderWindow>("资源包构建工具", true, WindowsDefine.DockedWindowTypes);
-			window.minSize = new Vector2(800, 600);
-		}
-
-		private BuildTarget _buildTarget;
-		private List<Type> _encryptionServicesClassTypes;
-		private List<string> _encryptionServicesClassNames;
-		private List<string> _buildPackageNames;
-
-		private Button _saveButton;
-		private TextField _buildOutputField;
-		private EnumField _buildPipelineField;
-		private EnumField _buildModeField;
-		private TextField _buildVersionField;
-		private PopupField<string> _buildPackageField;
-		private PopupField<string> _encryptionField;
-		private EnumField _compressionField;
-		private EnumField _outputNameStyleField;
-		private EnumField _copyBuildinFileOptionField;
-		private TextField _copyBuildinFileTagsField;
-
-		public void CreateGUI()
-		{
-			try
-			{
-				VisualElement root = this.rootVisualElement;
-
-				// 加载布局文件
-				var visualAsset = UxmlLoader.LoadWindowUXML<AssetBundleBuilderWindow>();
-				if (visualAsset == null)
-					return;
-
-				visualAsset.CloneTree(root);
-
-				// 配置保存按钮
-				_saveButton = root.Q<Button>("SaveButton");
-				_saveButton.clicked += SaveBtn_clicked;
-
-				// 构建平台
-				_buildTarget = EditorUserBuildSettings.activeBuildTarget;
-
-				// 包裹名称列表
-				_buildPackageNames = GetBuildPackageNames();
-
-				// 加密服务类
-				_encryptionServicesClassTypes = GetEncryptionServicesClassTypes();
-				_encryptionServicesClassNames = _encryptionServicesClassTypes.Select(t => t.Name).ToList();
-
-				// 输出目录
-				string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
-				_buildOutputField = root.Q<TextField>("BuildOutput");
-				_buildOutputField.SetValueWithoutNotify(defaultOutputRoot);
-				_buildOutputField.SetEnabled(false);
-
-				// 构建管线
-				_buildPipelineField = root.Q<EnumField>("BuildPipeline");
-				_buildPipelineField.Init(AssetBundleBuilderSettingData.Setting.BuildPipeline);
-				_buildPipelineField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.BuildPipeline);
-				_buildPipelineField.style.width = 350;
-				_buildPipelineField.RegisterValueChangedCallback(evt =>
-				{
-					AssetBundleBuilderSettingData.IsDirty = true;
-					AssetBundleBuilderSettingData.Setting.BuildPipeline = (EBuildPipeline)_buildPipelineField.value;
-					RefreshWindow();
-				});
-
-				// 构建模式
-				_buildModeField = root.Q<EnumField>("BuildMode");
-				_buildModeField.Init(AssetBundleBuilderSettingData.Setting.BuildMode);
-				_buildModeField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.BuildMode);
-				_buildModeField.style.width = 350;
-				_buildModeField.RegisterValueChangedCallback(evt =>
-				{
-					AssetBundleBuilderSettingData.IsDirty = true;
-					AssetBundleBuilderSettingData.Setting.BuildMode = (EBuildMode)_buildModeField.value;
-					RefreshWindow();
-				});
-
-				// 构建版本
-				_buildVersionField = root.Q<TextField>("BuildVersion");
-				_buildVersionField.SetValueWithoutNotify(GetBuildPackageVersion());
-
-				// 构建包裹
-				var buildPackageContainer = root.Q("BuildPackageContainer");
-				if (_buildPackageNames.Count > 0)
-				{
-					int defaultIndex = GetDefaultPackageIndex(AssetBundleBuilderSettingData.Setting.BuildPackage);
-					_buildPackageField = new PopupField<string>(_buildPackageNames, defaultIndex);
-					_buildPackageField.label = "Build Package";
-					_buildPackageField.style.width = 350;
-					_buildPackageField.RegisterValueChangedCallback(evt =>
-					{
-						AssetBundleBuilderSettingData.IsDirty = true;
-						AssetBundleBuilderSettingData.Setting.BuildPackage = _buildPackageField.value;
-					});
-					buildPackageContainer.Add(_buildPackageField);
-				}
-				else
-				{
-					_buildPackageField = new PopupField<string>();
-					_buildPackageField.label = "Build Package";
-					_buildPackageField.style.width = 350;
-					buildPackageContainer.Add(_buildPackageField);
-				}
-
-				// 加密方法
-				var encryptionContainer = root.Q("EncryptionContainer");
-				if (_encryptionServicesClassNames.Count > 0)
-				{
-					int defaultIndex = GetDefaultEncryptionIndex(AssetBundleBuilderSettingData.Setting.EncyptionClassName);
-					_encryptionField = new PopupField<string>(_encryptionServicesClassNames, defaultIndex);
-					_encryptionField.label = "Encryption";
-					_encryptionField.style.width = 350;
-					_encryptionField.RegisterValueChangedCallback(evt =>
-					{
-						AssetBundleBuilderSettingData.IsDirty = true;
-						AssetBundleBuilderSettingData.Setting.EncyptionClassName = _encryptionField.value;
-					});
-					encryptionContainer.Add(_encryptionField);
-				}
-				else
-				{
-					_encryptionField = new PopupField<string>();
-					_encryptionField.label = "Encryption";
-					_encryptionField.style.width = 350;
-					encryptionContainer.Add(_encryptionField);
-				}
-
-				// 压缩方式选项
-				_compressionField = root.Q<EnumField>("Compression");
-				_compressionField.Init(AssetBundleBuilderSettingData.Setting.CompressOption);
-				_compressionField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.CompressOption);
-				_compressionField.style.width = 350;
-				_compressionField.RegisterValueChangedCallback(evt =>
-				{
-					AssetBundleBuilderSettingData.IsDirty = true;
-					AssetBundleBuilderSettingData.Setting.CompressOption = (ECompressOption)_compressionField.value;
-				});
-
-				// 输出文件名称样式
-				_outputNameStyleField = root.Q<EnumField>("OutputNameStyle");
-				_outputNameStyleField.Init(AssetBundleBuilderSettingData.Setting.OutputNameStyle);
-				_outputNameStyleField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.OutputNameStyle);
-				_outputNameStyleField.style.width = 350;
-				_outputNameStyleField.RegisterValueChangedCallback(evt =>
-				{
-					AssetBundleBuilderSettingData.IsDirty = true;
-					AssetBundleBuilderSettingData.Setting.OutputNameStyle = (EOutputNameStyle)_outputNameStyleField.value;
-				});
-
-				// 首包文件拷贝选项
-				_copyBuildinFileOptionField = root.Q<EnumField>("CopyBuildinFileOption");
-				_copyBuildinFileOptionField.Init(AssetBundleBuilderSettingData.Setting.CopyBuildinFileOption);
-				_copyBuildinFileOptionField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.CopyBuildinFileOption);
-				_copyBuildinFileOptionField.style.width = 350;
-				_copyBuildinFileOptionField.RegisterValueChangedCallback(evt =>
-				{
-					AssetBundleBuilderSettingData.IsDirty = true;
-					AssetBundleBuilderSettingData.Setting.CopyBuildinFileOption = (ECopyBuildinFileOption)_copyBuildinFileOptionField.value;
-					RefreshWindow();
-				});
-
-				// 首包文件的资源标签
-				_copyBuildinFileTagsField = root.Q<TextField>("CopyBuildinFileTags");
-				_copyBuildinFileTagsField.SetValueWithoutNotify(AssetBundleBuilderSettingData.Setting.CopyBuildinFileTags);
-				_copyBuildinFileTagsField.RegisterValueChangedCallback(evt =>
-				{
-					AssetBundleBuilderSettingData.IsDirty = true;
-					AssetBundleBuilderSettingData.Setting.CopyBuildinFileTags = _copyBuildinFileTagsField.value;
-				});
-
-				// 构建按钮
-				var buildButton = root.Q<Button>("Build");
-				buildButton.clicked += BuildButton_clicked; ;
-
-				RefreshWindow();
-			}
-			catch (Exception e)
-			{
-				Debug.LogError(e.ToString());
-			}
-		}
-		public void OnDestroy()
-		{
-			if (AssetBundleBuilderSettingData.IsDirty)
-				AssetBundleBuilderSettingData.SaveFile();
-		}
-		public void Update()
-		{
-			if (_saveButton != null)
-			{
-				if (AssetBundleBuilderSettingData.IsDirty)
-				{
-					if (_saveButton.enabledSelf == false)
-						_saveButton.SetEnabled(true);
-				}
-				else
-				{
-					if (_saveButton.enabledSelf)
-						_saveButton.SetEnabled(false);
-				}
-			}
-		}
-
-		private void RefreshWindow()
-		{
-			var buildPipeline = AssetBundleBuilderSettingData.Setting.BuildPipeline;
-			var buildMode = AssetBundleBuilderSettingData.Setting.BuildMode;
-			var copyOption = AssetBundleBuilderSettingData.Setting.CopyBuildinFileOption;
-			bool enableElement = buildMode == EBuildMode.ForceRebuild;
-			bool tagsFiledVisible = copyOption == ECopyBuildinFileOption.ClearAndCopyByTags || copyOption == ECopyBuildinFileOption.OnlyCopyByTags;
-
-			if (buildPipeline == EBuildPipeline.BuiltinBuildPipeline)
-			{
-				_compressionField.SetEnabled(enableElement);
-				_outputNameStyleField.SetEnabled(enableElement);
-				_copyBuildinFileOptionField.SetEnabled(enableElement);
-				_copyBuildinFileTagsField.SetEnabled(enableElement);
-			}
-			else
-			{
-				_compressionField.SetEnabled(true);
-				_outputNameStyleField.SetEnabled(true);
-				_copyBuildinFileOptionField.SetEnabled(true);
-				_copyBuildinFileTagsField.SetEnabled(true);
-			}
-
-			_copyBuildinFileTagsField.visible = tagsFiledVisible;
-		}
-		private void SaveBtn_clicked()
-		{
-			AssetBundleBuilderSettingData.SaveFile();
-		}
-		private void BuildButton_clicked()
-		{
-			var buildMode = AssetBundleBuilderSettingData.Setting.BuildMode;
-			if (EditorUtility.DisplayDialog("提示", $"通过构建模式【{buildMode}】来构建!", "Yes", "No"))
-			{
-				EditorTools.ClearUnityConsole();
-				EditorApplication.delayCall += ExecuteBuild;
-			}
-			else
-			{
-				Debug.LogWarning("[Build] 打包已经取消");
-			}
-		}
-
-		/// <summary>
-		/// 执行构建
-		/// </summary>
-		private void ExecuteBuild()
-		{
-			BuildParameters buildParameters = new BuildParameters();
-			buildParameters.StreamingAssetsRoot = AssetBundleBuilderHelper.GetDefaultStreamingAssetsRoot();
-			buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
-			buildParameters.BuildTarget = _buildTarget;
-			buildParameters.BuildPipeline = AssetBundleBuilderSettingData.Setting.BuildPipeline;
-			buildParameters.BuildMode = AssetBundleBuilderSettingData.Setting.BuildMode;
-			buildParameters.PackageName = AssetBundleBuilderSettingData.Setting.BuildPackage;
-			buildParameters.PackageVersion = _buildVersionField.value;
-			buildParameters.VerifyBuildingResult = true;
-			buildParameters.SharedPackRule = new ZeroRedundancySharedPackRule();
-			buildParameters.EncryptionServices = CreateEncryptionServicesInstance();
-			buildParameters.CompressOption = AssetBundleBuilderSettingData.Setting.CompressOption;
-			buildParameters.OutputNameStyle = AssetBundleBuilderSettingData.Setting.OutputNameStyle;
-			buildParameters.CopyBuildinFileOption = AssetBundleBuilderSettingData.Setting.CopyBuildinFileOption;
-			buildParameters.CopyBuildinFileTags = AssetBundleBuilderSettingData.Setting.CopyBuildinFileTags;
-
-			if (AssetBundleBuilderSettingData.Setting.BuildPipeline == EBuildPipeline.ScriptableBuildPipeline)
-			{
-				buildParameters.SBPParameters = new BuildParameters.SBPBuildParameters();
-				buildParameters.SBPParameters.WriteLinkXML = true;
-			}
-
-			var builder = new AssetBundleBuilder();
-			var buildResult = builder.Run(buildParameters);
-			if (buildResult.Success)
-			{
-				EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory);
-			}
-		}
-
-		// 构建版本相关
-		private string GetBuildPackageVersion()
-		{
-			int totalMinutes = DateTime.Now.Hour * 60 + DateTime.Now.Minute;
-			return DateTime.Now.ToString("yyyy-MM-dd") + "-" + totalMinutes;
-		}
-
-		// 构建包裹相关
-		private int GetDefaultPackageIndex(string packageName)
-		{
-			for (int index = 0; index < _buildPackageNames.Count; index++)
-			{
-				if (_buildPackageNames[index] == packageName)
-				{
-					return index;
-				}
-			}
-
-			AssetBundleBuilderSettingData.IsDirty = true;
-			AssetBundleBuilderSettingData.Setting.BuildPackage = _buildPackageNames[0];
-			return 0;
-		}
-		private List<string> GetBuildPackageNames()
-		{
-			List<string> result = new List<string>();
-			foreach (var package in AssetBundleCollectorSettingData.Setting.Packages)
-			{
-				result.Add(package.PackageName);
-			}
-			return result;
-		}
-
-		// 加密类相关
-		private int GetDefaultEncryptionIndex(string className)
-		{
-			for (int index = 0; index < _encryptionServicesClassNames.Count; index++)
-			{
-				if (_encryptionServicesClassNames[index] == className)
-				{
-					return index;
-				}
-			}
-
-			AssetBundleBuilderSettingData.IsDirty = true;
-			AssetBundleBuilderSettingData.Setting.EncyptionClassName = _encryptionServicesClassNames[0];
-			return 0;
-		}
-		private List<Type> GetEncryptionServicesClassTypes()
-		{
-			return EditorTools.GetAssignableTypes(typeof(IEncryptionServices));
-		}
-		private IEncryptionServices CreateEncryptionServicesInstance()
-		{
-			if (_encryptionField.index < 0)
-				return null;
-			var classType = _encryptionServicesClassTypes[_encryptionField.index];
-			return (IEncryptionServices)Activator.CreateInstance(classType);
-		}
-	}
-}
-#endif

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 66e43420e95cd0b4bae8803a31e9817b
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 18
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.uxml

@@ -1,18 +0,0 @@
-<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="True">
-    <uie:Toolbar name="Toolbar" style="display: flex; flex-direction: row-reverse;">
-        <ui:Button text="Save" display-tooltip-when-elided="true" name="SaveButton" style="background-color: rgb(56, 147, 58);" />
-    </uie:Toolbar>
-    <ui:VisualElement name="BuildContainer">
-        <ui:TextField picking-mode="Ignore" label="Build Output" name="BuildOutput" />
-        <uie:EnumField label="Build Pipeline" name="BuildPipeline" />
-        <uie:EnumField label="Build Mode" name="BuildMode" />
-        <ui:TextField picking-mode="Ignore" label="Build Version" name="BuildVersion" style="width: 350px;" />
-        <ui:VisualElement name="BuildPackageContainer" style="height: 24px;" />
-        <ui:VisualElement name="EncryptionContainer" style="height: 24px;" />
-        <uie:EnumField label="Compression" value="Center" name="Compression" />
-        <uie:EnumField label="Output Name Style" value="Center" name="OutputNameStyle" />
-        <uie:EnumField label="Copy Buildin File Option" value="Center" name="CopyBuildinFileOption" />
-        <ui:TextField picking-mode="Ignore" label="Copy Buildin File Tags" name="CopyBuildinFileTags" />
-        <ui:Button text="构建" display-tooltip-when-elided="true" name="Build" style="height: 50px; background-color: rgb(40, 106, 42); margin-top: 10px;" />
-    </ui:VisualElement>
-</ui:UXML>

+ 0 - 10
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleBuilderWindow.uxml.meta

@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: 28ba29adb4949284e8c48893218b0d9a
-ScriptedImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 2
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
-  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 0 - 37
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleSimulateBuilder.cs

@@ -1,37 +0,0 @@
-using UnityEditor;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	public static class AssetBundleSimulateBuilder
-	{
-		/// <summary>
-		/// 模拟构建
-		/// </summary>
-		public static string SimulateBuild(string packageName)
-		{
-			Debug.Log($"Begin to create simulate package : {packageName}");
-			BuildParameters buildParameters = new BuildParameters();
-			buildParameters.StreamingAssetsRoot = AssetBundleBuilderHelper.GetDefaultStreamingAssetsRoot();
-			buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
-			buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
-			buildParameters.BuildMode = EBuildMode.SimulateBuild;
-			buildParameters.PackageName = packageName;
-			buildParameters.PackageVersion = "Simulate";
-			buildParameters.EnableLog = false;
-
-			AssetBundleBuilder builder = new AssetBundleBuilder();
-			var buildResult = builder.Run(buildParameters);
-			if (buildResult.Success)
-			{
-				string manifestFileName = YooAssetSettingsData.GetManifestBinaryFileName(buildParameters.PackageName, buildParameters.PackageVersion);
-				string manifestFilePath = $"{buildResult.OutputPackageDirectory}/{manifestFileName}";
-				return manifestFilePath;
-			}
-			else
-			{
-				return null;
-			}
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/AssetBundleSimulateBuilder.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: f94918fa1ea63c34fa0e49fdad4119cf
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 213
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs

@@ -1,213 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace YooAsset.Editor
-{
-	public class BuildAssetInfo
-	{
-		private bool _isAddAssetTags = false;
-		private readonly HashSet<string> _referenceBundleNames = new HashSet<string>();
-
-		/// <summary>
-		/// 收集器类型
-		/// </summary>
-		public ECollectorType CollectorType { private set; get; }
-
-		/// <summary>
-		/// 资源包完整名称
-		/// </summary>
-		public string BundleName { private set; get; }
-
-		/// <summary>
-		/// 可寻址地址
-		/// </summary>
-		public string Address { private set; get; }
-
-		/// <summary>
-		/// 资源路径
-		/// </summary>
-		public string AssetPath { private set; get; }
-
-		/// <summary>
-		/// 资源GUID
-		/// </summary>
-		public string AssetGUID { private set; get; }
-
-		/// <summary>
-		/// 是否为原生资源
-		/// </summary>
-		public bool IsRawAsset { private set; get; }
-
-		/// <summary>
-		/// 是否为着色器资源
-		/// </summary>
-		public bool IsShaderAsset { private set; get; }
-
-		/// <summary>
-		/// 资源的分类标签
-		/// </summary>
-		public readonly List<string> AssetTags = new List<string>();
-
-		/// <summary>
-		/// 资源包的分类标签
-		/// </summary>
-		public readonly List<string> BundleTags = new List<string>();
-
-		/// <summary>
-		/// 依赖的所有资源
-		/// 注意:包括零依赖资源和冗余资源(资源包名无效)
-		/// </summary>
-		public List<BuildAssetInfo> AllDependAssetInfos { private set; get; }
-
-
-		public BuildAssetInfo(ECollectorType collectorType, string bundleName, string address, string assetPath, bool isRawAsset)
-		{
-			CollectorType = collectorType;
-			BundleName = bundleName;
-			Address = address;
-			AssetPath = assetPath;
-			IsRawAsset = isRawAsset;
-
-			AssetGUID = UnityEditor.AssetDatabase.AssetPathToGUID(assetPath);
-			System.Type assetType = UnityEditor.AssetDatabase.GetMainAssetTypeAtPath(assetPath);
-			if (assetType == typeof(UnityEngine.Shader) || assetType == typeof(UnityEngine.ShaderVariantCollection))
-				IsShaderAsset = true;
-			else
-				IsShaderAsset = false;
-		}
-		public BuildAssetInfo(string assetPath)
-		{
-			CollectorType = ECollectorType.None;
-			Address = string.Empty;
-			AssetPath = assetPath;
-			IsRawAsset = false;
-
-			AssetGUID = UnityEditor.AssetDatabase.AssetPathToGUID(assetPath);
-			System.Type assetType = UnityEditor.AssetDatabase.GetMainAssetTypeAtPath(assetPath);
-			if (assetType == typeof(UnityEngine.Shader) || assetType == typeof(UnityEngine.ShaderVariantCollection))
-				IsShaderAsset = true;
-			else
-				IsShaderAsset = false;
-		}
-
-
-		/// <summary>
-		/// 设置所有依赖的资源
-		/// </summary>
-		public void SetAllDependAssetInfos(List<BuildAssetInfo> dependAssetInfos)
-		{
-			if (AllDependAssetInfos != null)
-				throw new System.Exception("Should never get here !");
-
-			AllDependAssetInfos = dependAssetInfos;
-		}
-
-		/// <summary>
-		/// 添加资源的分类标签
-		/// 说明:原始定义的资源分类标签
-		/// </summary>
-		public void AddAssetTags(List<string> tags)
-		{
-			if (_isAddAssetTags)
-				throw new Exception("Should never get here !");
-			_isAddAssetTags = true;
-
-			foreach (var tag in tags)
-			{
-				if (AssetTags.Contains(tag) == false)
-				{
-					AssetTags.Add(tag);
-				}
-			}
-		}
-
-		/// <summary>
-		/// 添加资源包的分类标签
-		/// 说明:传染算法统计到的分类标签
-		/// </summary>
-		public void AddBundleTags(List<string> tags)
-		{
-			foreach (var tag in tags)
-			{
-				if (BundleTags.Contains(tag) == false)
-				{
-					BundleTags.Add(tag);
-				}
-			}
-		}
-
-		/// <summary>
-		/// 资源包名是否存在
-		/// </summary>
-		public bool HasBundleName()
-		{
-			if (string.IsNullOrEmpty(BundleName))
-				return false;
-			else
-				return true;
-		}
-
-		/// <summary>
-		/// 添加关联的资源包名称
-		/// </summary>
-		public void AddReferenceBundleName(string bundleName)
-		{
-			if (string.IsNullOrEmpty(bundleName))
-				throw new Exception("Should never get here !");
-
-			if (_referenceBundleNames.Contains(bundleName) == false)
-				_referenceBundleNames.Add(bundleName);
-		}
-
-		/// <summary>
-		/// 计算共享资源包的完整包名
-		/// </summary>
-		public void CalculateShareBundleName(ISharedPackRule sharedPackRule, bool uniqueBundleName, string packageName, string shadersBundleName)
-		{
-			if (CollectorType != ECollectorType.None)
-				return;
-
-			if (IsRawAsset)
-				throw new Exception("Should never get here !");
-
-			if (IsShaderAsset)
-			{
-				BundleName = shadersBundleName;
-			}
-			else
-			{
-				if (_referenceBundleNames.Count > 1)
-				{
-					PackRuleResult packRuleResult = sharedPackRule.GetPackRuleResult(AssetPath);
-					BundleName = packRuleResult.GetShareBundleName(packageName, uniqueBundleName);
-				}
-				else
-				{
-					// 注意:被引用次数小于1的资源不需要设置资源包名称
-					BundleName = string.Empty;
-				}
-			}
-		}
-
-		/// <summary>
-		/// 判断是否为冗余资源
-		/// </summary>
-		public bool IsRedundancyAsset()
-		{
-			if (HasBundleName())
-				return false;
-
-			return _referenceBundleNames.Count > 1;
-		}
-
-		/// <summary>
-		/// 获取关联资源包的数量
-		/// </summary>
-		public int GetReferenceBundleCount()
-		{
-			return _referenceBundleNames.Count;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 447008dd110b8d746aafbe88c78bee5d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 220
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildBundleInfo.cs

@@ -1,220 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	public class BuildBundleInfo
-	{
-		public class InfoWrapper
-		{
-			/// <summary>
-			/// 构建内容的哈希值
-			/// </summary>
-			public string ContentHash { set; get; }
-
-			/// <summary>
-			/// 文件哈希值
-			/// </summary>
-			public string FileHash { set; get; }
-
-			/// <summary>
-			/// 文件哈希值
-			/// </summary>
-			public string FileCRC { set; get; }
-
-			/// <summary>
-			/// 文件哈希值
-			/// </summary>
-			public long FileSize { set; get; }
-
-
-			/// <summary>
-			/// 构建输出的文件路径
-			/// </summary>
-			public string BuildOutputFilePath { set; get; }
-
-			/// <summary>
-			/// 补丁包输出文件路径
-			/// </summary>
-			public string PackageOutputFilePath { set; get; }
-		}
-
-		/// <summary>
-		/// 资源包名称
-		/// </summary>
-		public string BundleName { private set; get; }
-
-		/// <summary>
-		/// 参与构建的资源列表
-		/// 注意:不包含零依赖资源和冗余资源
-		/// </summary>
-		public readonly List<BuildAssetInfo> AllMainAssets = new List<BuildAssetInfo>();
-
-		/// <summary>
-		/// 补丁文件信息
-		/// </summary>
-		public readonly InfoWrapper BundleInfo = new InfoWrapper();
-
-		/// <summary>
-		/// Bundle文件的加载方法
-		/// </summary>
-		public EBundleLoadMethod LoadMethod { set; get; }
-
-		/// <summary>
-		/// 加密生成文件的路径
-		/// 注意:如果未加密该路径为空
-		/// </summary>
-		public string EncryptedFilePath { set; get; }
-
-		/// <summary>
-		/// 是否为原生文件
-		/// </summary>
-		public bool IsRawFile
-		{
-			get
-			{
-				foreach (var assetInfo in AllMainAssets)
-				{
-					if (assetInfo.IsRawAsset)
-						return true;
-				}
-				return false;
-			}
-		}
-
-		/// <summary>
-		/// 是否为加密文件
-		/// </summary>
-		public bool IsEncryptedFile
-		{
-			get
-			{
-				if (string.IsNullOrEmpty(EncryptedFilePath))
-					return false;
-				else
-					return true;
-			}
-		}
-
-
-		public BuildBundleInfo(string bundleName)
-		{
-			BundleName = bundleName;
-		}
-
-		/// <summary>
-		/// 添加一个打包资源
-		/// </summary>
-		public void PackAsset(BuildAssetInfo assetInfo)
-		{
-			if (IsContainsAsset(assetInfo.AssetPath))
-				throw new System.Exception($"Asset is existed : {assetInfo.AssetPath}");
-
-			AllMainAssets.Add(assetInfo);
-		}
-
-		/// <summary>
-		/// 是否包含指定资源
-		/// </summary>
-		public bool IsContainsAsset(string assetPath)
-		{
-			foreach (var assetInfo in AllMainAssets)
-			{
-				if (assetInfo.AssetPath == assetPath)
-				{
-					return true;
-				}
-			}
-			return false;
-		}
-
-		/// <summary>
-		/// 获取资源包的分类标签列表
-		/// </summary>
-		public string[] GetBundleTags()
-		{
-			List<string> result = new List<string>(AllMainAssets.Count);
-			foreach (var assetInfo in AllMainAssets)
-			{
-				foreach (var assetTag in assetInfo.BundleTags)
-				{
-					if (result.Contains(assetTag) == false)
-						result.Add(assetTag);
-				}
-			}
-			return result.ToArray();
-		}
-
-		/// <summary>
-		/// 获取构建的资源路径列表
-		/// </summary>
-		public string[] GetAllMainAssetPaths()
-		{
-			return AllMainAssets.Select(t => t.AssetPath).ToArray();
-		}
-
-		/// <summary>
-		/// 获取该资源包内的所有资源(包括零依赖资源和冗余资源)
-		/// </summary>
-		public List<string> GetAllBuiltinAssetPaths()
-		{
-			var packAssets = GetAllMainAssetPaths();
-			List<string> result = new List<string>(packAssets);
-			foreach (var assetInfo in AllMainAssets)
-			{
-				if (assetInfo.AllDependAssetInfos == null)
-					continue;
-				foreach (var dependAssetInfo in assetInfo.AllDependAssetInfos)
-				{
-					// 注意:依赖资源里只添加零依赖资源和冗余资源
-					if (dependAssetInfo.HasBundleName() == false)
-					{
-						if (result.Contains(dependAssetInfo.AssetPath) == false)
-							result.Add(dependAssetInfo.AssetPath);
-					}
-				}
-			}
-			return result;
-		}
-
-		/// <summary>
-		/// 创建AssetBundleBuild类
-		/// </summary>
-		public UnityEditor.AssetBundleBuild CreatePipelineBuild()
-		{
-			// 注意:我们不在支持AssetBundle的变种机制
-			AssetBundleBuild build = new AssetBundleBuild();
-			build.assetBundleName = BundleName;
-			build.assetBundleVariant = string.Empty;
-			build.assetNames = GetAllMainAssetPaths();
-			return build;
-		}
-
-		/// <summary>
-		/// 获取所有写入补丁清单的资源
-		/// </summary>
-		public BuildAssetInfo[] GetAllManifestAssetInfos()
-		{
-			return AllMainAssets.Where(t => t.CollectorType == ECollectorType.MainAssetCollector).ToArray();
-		}
-
-		/// <summary>
-		/// 创建PackageBundle类
-		/// </summary>
-		internal PackageBundle CreatePackageBundle()
-		{
-			PackageBundle packageBundle = new PackageBundle();
-			packageBundle.BundleName = BundleName;
-			packageBundle.FileHash = BundleInfo.FileHash;
-			packageBundle.FileCRC = BundleInfo.FileCRC;
-			packageBundle.FileSize = BundleInfo.FileSize;
-			packageBundle.IsRawFile = IsRawFile;
-			packageBundle.LoadMethod = (byte)LoadMethod;
-			packageBundle.Tags = GetBundleTags();
-			return packageBundle;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildBundleInfo.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 826a9d7b4de0eba40b5c39b33747c011
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 108
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildMapContext.cs

@@ -1,108 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	public class BuildMapContext : IContextObject
-	{
-		private readonly Dictionary<string, BuildBundleInfo> _bundleInfoDic = new Dictionary<string, BuildBundleInfo>(10000);
-
-		/// <summary>
-		/// 冗余的资源列表
-		/// </summary>
-		public readonly List<ReportRedundancyInfo> RedundancyInfos= new List<ReportRedundancyInfo>(1000);
-		
-		/// <summary>
-		/// 参与构建的资源总数
-		/// 说明:包括主动收集的资源以及其依赖的所有资源
-		/// </summary>
-		public int AssetFileCount;
-
-		/// <summary>
-		/// 收集命令
-		/// </summary>
-		public CollectCommand Command { set; get; }
-
-		/// <summary>
-		/// 资源包信息列表
-		/// </summary>
-		public Dictionary<string, BuildBundleInfo>.ValueCollection Collection
-		{
-			get
-			{
-				return _bundleInfoDic.Values;
-			}
-		}
-
-
-		/// <summary>
-		/// 添加一个打包资源
-		/// </summary>
-		public void PackAsset(BuildAssetInfo assetInfo)
-		{
-			string bundleName = assetInfo.BundleName;
-			if (string.IsNullOrEmpty(bundleName))
-				throw new Exception("Should never get here !");
-
-			if (_bundleInfoDic.TryGetValue(bundleName, out BuildBundleInfo bundleInfo))
-			{
-				bundleInfo.PackAsset(assetInfo);
-			}
-			else
-			{
-				BuildBundleInfo newBundleInfo = new BuildBundleInfo(bundleName);
-				newBundleInfo.PackAsset(assetInfo);
-				_bundleInfoDic.Add(bundleName, newBundleInfo);
-			}
-		}
-
-		/// <summary>
-		/// 是否包含资源包
-		/// </summary>
-		public bool IsContainsBundle(string bundleName)
-		{
-			return _bundleInfoDic.ContainsKey(bundleName);
-		}
-
-		/// <summary>
-		/// 获取资源包信息,如果没找到返回NULL
-		/// </summary>
-		public BuildBundleInfo GetBundleInfo(string bundleName)
-		{
-			if (_bundleInfoDic.TryGetValue(bundleName, out BuildBundleInfo result))
-			{
-				return result;
-			}
-			throw new Exception($"Not found bundle : {bundleName}");
-		}
-
-		/// <summary>
-		/// 获取构建管线里需要的数据
-		/// </summary>
-		public UnityEditor.AssetBundleBuild[] GetPipelineBuilds()
-		{
-			List<UnityEditor.AssetBundleBuild> builds = new List<UnityEditor.AssetBundleBuild>(_bundleInfoDic.Count);
-			foreach (var bundleInfo in _bundleInfoDic.Values)
-			{
-				if (bundleInfo.IsRawFile == false)
-					builds.Add(bundleInfo.CreatePipelineBuild());
-			}
-			return builds.ToArray();
-		}
-
-		/// <summary>
-		/// 创建着色器信息类
-		/// </summary>
-		public void CreateShadersBundleInfo(string shadersBundleName)
-		{
-			if (IsContainsBundle(shadersBundleName) == false)
-			{
-				var shaderBundleInfo = new BuildBundleInfo(shadersBundleName);
-				_bundleInfoDic.Add(shadersBundleName, shaderBundleInfo);
-			}
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildMapContext.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 8229aa3f8a369204db5c368715191e2f
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 125
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParameters.cs

@@ -1,125 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	/// <summary>
-	/// 构建参数
-	/// </summary>
-	public class BuildParameters
-	{
-		/// <summary>
-		/// SBP构建参数
-		/// </summary>
-		public class SBPBuildParameters
-		{
-			/// <summary>
-			/// 生成代码防裁剪配置
-			/// </summary>
-			public bool WriteLinkXML = true;
-
-			/// <summary>
-			/// 缓存服务器地址
-			/// </summary>
-			public string CacheServerHost;
-
-			/// <summary>
-			/// 缓存服务器端口
-			/// </summary>
-			public int CacheServerPort;
-		}
-
-		/// <summary>
-		/// 可编程构建管线的参数
-		/// </summary>
-		public SBPBuildParameters SBPParameters;
-
-
-		/// <summary>
-		/// 内置资源的根目录
-		/// </summary>
-		public string StreamingAssetsRoot;
-
-		/// <summary>
-		/// 构建输出的根目录
-		/// </summary>
-		public string BuildOutputRoot;
-
-		/// <summary>
-		/// 构建的平台
-		/// </summary>
-		public BuildTarget BuildTarget;
-
-		/// <summary>
-		/// 构建管线
-		/// </summary>
-		public EBuildPipeline BuildPipeline;
-
-		/// <summary>
-		/// 构建模式
-		/// </summary>
-		public EBuildMode BuildMode;
-
-		/// <summary>
-		/// 构建的包裹名称
-		/// </summary>
-		public string PackageName;
-
-		/// <summary>
-		/// 构建的包裹版本
-		/// </summary>
-		public string PackageVersion;
-
-
-		/// <summary>
-		/// 是否显示普通日志
-		/// </summary>
-		public bool EnableLog = true;
-		
-		/// <summary>
-		/// 验证构建结果
-		/// </summary>
-		public bool VerifyBuildingResult = false;
-		
-		/// <summary>
-		/// 共享资源的打包规则
-		/// </summary>
-		public ISharedPackRule SharedPackRule = null;
-
-		/// <summary>
-		/// 资源的加密接口
-		/// </summary>
-		public IEncryptionServices EncryptionServices = null;
-
-		/// <summary>
-		/// 补丁文件名称的样式
-		/// </summary>
-		public EOutputNameStyle OutputNameStyle = EOutputNameStyle.HashName;
-
-		/// <summary>
-		/// 拷贝内置资源选项
-		/// </summary>
-		public ECopyBuildinFileOption CopyBuildinFileOption = ECopyBuildinFileOption.None;
-
-		/// <summary>
-		/// 拷贝内置资源的标签
-		/// </summary>
-		public string CopyBuildinFileTags = string.Empty;
-
-		/// <summary>
-		/// 压缩选项
-		/// </summary>
-		public ECompressOption CompressOption = ECompressOption.Uncompressed;
-
-		/// <summary>
-		/// 禁止写入类型树结构(可以降低包体和内存并提高加载效率)
-		/// </summary>
-		public bool DisableWriteTypeTree = false;
-
-		/// <summary>
-		/// 忽略类型树变化
-		/// </summary>
-		public bool IgnoreTypeTreeChanges = true;
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParameters.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 98bb314dc26ba184fbb9e9fdcdb58a1d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 145
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParametersContext.cs

@@ -1,145 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	public class BuildParametersContext : IContextObject
-	{
-		private string _pipelineOutputDirectory = string.Empty;
-		private string _packageOutputDirectory = string.Empty;
-		private string _packageRootDirectory = string.Empty;
-		private string _streamingAssetsDirectory = string.Empty;
-
-		/// <summary>
-		/// 构建参数
-		/// </summary>
-		public BuildParameters Parameters { private set; get; }
-
-
-		public BuildParametersContext(BuildParameters parameters)
-		{
-			Parameters = parameters;
-		}
-
-		/// <summary>
-		/// 获取构建管线的输出目录
-		/// </summary>
-		/// <returns></returns>
-		public string GetPipelineOutputDirectory()
-		{
-			if (string.IsNullOrEmpty(_pipelineOutputDirectory))
-			{
-				_pipelineOutputDirectory = $"{Parameters.BuildOutputRoot}/{Parameters.BuildTarget}/{Parameters.PackageName}/{YooAssetSettings.OutputFolderName}";
-			}
-			return _pipelineOutputDirectory;
-		}
-
-		/// <summary>
-		/// 获取本次构建的补丁输出目录
-		/// </summary>
-		public string GetPackageOutputDirectory()
-		{
-			if (string.IsNullOrEmpty(_packageOutputDirectory))
-			{
-				_packageOutputDirectory = $"{Parameters.BuildOutputRoot}/{Parameters.BuildTarget}/{Parameters.PackageName}/{Parameters.PackageVersion}";
-			}
-			return _packageOutputDirectory;
-		}
-
-		/// <summary>
-		/// 获取本次构建的补丁根目录
-		/// </summary>
-		public string GetPackageRootDirectory()
-		{
-			if (string.IsNullOrEmpty(_packageRootDirectory))
-			{
-				_packageRootDirectory = $"{Parameters.BuildOutputRoot}/{Parameters.BuildTarget}/{Parameters.PackageName}";
-			}
-			return _packageRootDirectory;
-		}
-
-		/// <summary>
-		/// 获取内置资源的目录
-		/// </summary>
-		public string GetStreamingAssetsDirectory()
-		{
-			if (string.IsNullOrEmpty(_streamingAssetsDirectory))
-			{
-				_streamingAssetsDirectory = $"{Parameters.StreamingAssetsRoot}/{Parameters.PackageName}";
-			}
-			return _streamingAssetsDirectory;
-		}
-
-		/// <summary>
-		/// 获取内置构建管线的构建选项
-		/// </summary>
-		public BuildAssetBundleOptions GetPipelineBuildOptions()
-		{
-			// For the new build system, unity always need BuildAssetBundleOptions.CollectDependencies and BuildAssetBundleOptions.DeterministicAssetBundle
-			// 除非设置ForceRebuildAssetBundle标记,否则会进行增量打包
-
-			if (Parameters.BuildMode == EBuildMode.SimulateBuild)
-				throw new Exception("Should never get here !");
-
-			BuildAssetBundleOptions opt = BuildAssetBundleOptions.None;
-			opt |= BuildAssetBundleOptions.StrictMode; //Do not allow the build to succeed if any errors are reporting during it.
-
-			if (Parameters.BuildMode == EBuildMode.DryRunBuild)
-			{
-				opt |= BuildAssetBundleOptions.DryRunBuild;
-				return opt;
-			}
-
-			if (Parameters.CompressOption == ECompressOption.Uncompressed)
-				opt |= BuildAssetBundleOptions.UncompressedAssetBundle;
-			else if (Parameters.CompressOption == ECompressOption.LZ4)
-				opt |= BuildAssetBundleOptions.ChunkBasedCompression;
-
-			if (Parameters.BuildMode == EBuildMode.ForceRebuild)
-				opt |= BuildAssetBundleOptions.ForceRebuildAssetBundle; //Force rebuild the asset bundles
-			if (Parameters.DisableWriteTypeTree)
-				opt |= BuildAssetBundleOptions.DisableWriteTypeTree; //Do not include type information within the asset bundle (don't write type tree).
-			if (Parameters.IgnoreTypeTreeChanges)
-				opt |= BuildAssetBundleOptions.IgnoreTypeTreeChanges; //Ignore the type tree changes when doing the incremental build check.
-
-			opt |= BuildAssetBundleOptions.DisableLoadAssetByFileName; //Disables Asset Bundle LoadAsset by file name.
-			opt |= BuildAssetBundleOptions.DisableLoadAssetByFileNameWithExtension; //Disables Asset Bundle LoadAsset by file name with extension.			
-
-			return opt;
-		}
-
-		/// <summary>
-		/// 获取可编程构建管线的构建参数
-		/// </summary>
-		public UnityEditor.Build.Pipeline.BundleBuildParameters GetSBPBuildParameters()
-		{
-			if (Parameters.BuildMode == EBuildMode.SimulateBuild)
-				throw new Exception("Should never get here !");
-
-			var targetGroup = BuildPipeline.GetBuildTargetGroup(Parameters.BuildTarget);
-			var pipelineOutputDirectory = GetPipelineOutputDirectory();
-			var buildParams = new UnityEditor.Build.Pipeline.BundleBuildParameters(Parameters.BuildTarget, targetGroup, pipelineOutputDirectory);
-
-			if (Parameters.CompressOption == ECompressOption.Uncompressed)
-				buildParams.BundleCompression = UnityEngine.BuildCompression.Uncompressed;
-			else if (Parameters.CompressOption == ECompressOption.LZMA)
-				buildParams.BundleCompression = UnityEngine.BuildCompression.LZMA;
-			else if (Parameters.CompressOption == ECompressOption.LZ4)
-				buildParams.BundleCompression = UnityEngine.BuildCompression.LZ4;
-			else
-				throw new System.NotImplementedException(Parameters.CompressOption.ToString());
-
-			if (Parameters.DisableWriteTypeTree)
-				buildParams.ContentBuildFlags |= UnityEditor.Build.Content.ContentBuildFlags.DisableWriteTypeTree;
-
-			buildParams.UseCache = true;
-			buildParams.CacheServerHost = Parameters.SBPParameters.CacheServerHost;
-			buildParams.CacheServerPort = Parameters.SBPParameters.CacheServerPort;
-			buildParams.WriteLinkXML = Parameters.SBPParameters.WriteLinkXML;
-
-			return buildParams;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildParametersContext.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: b84510feab7cbe44a9b6d8ef0b3f559c
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d6268d725eec21b4aae819adc1553f0e
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 77
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/BuildReport.cs

@@ -1,77 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	/// <summary>
-	/// 构建报告
-	/// </summary>
-	[Serializable]
-	public class BuildReport
-	{
-		/// <summary>
-		/// 汇总信息
-		/// </summary>
-		public ReportSummary Summary = new ReportSummary();
-
-		/// <summary>
-		/// 资源对象列表
-		/// </summary>
-		public List<ReportAssetInfo> AssetInfos = new List<ReportAssetInfo>();
-
-		/// <summary>
-		/// 资源包列表
-		/// </summary>
-		public List<ReportBundleInfo> BundleInfos = new List<ReportBundleInfo>();
-
-		/// <summary>
-		/// 冗余的资源列表
-		/// </summary>
-		public List<ReportRedundancyInfo> RedundancyInfos = new List<ReportRedundancyInfo>();
-		
-
-		/// <summary>
-		/// 获取资源包信息类
-		/// </summary>
-		public ReportBundleInfo GetBundleInfo(string bundleName)
-		{
-			foreach (var bundleInfo in BundleInfos)
-			{
-				if (bundleInfo.BundleName == bundleName)
-					return bundleInfo;
-			}
-			throw new Exception($"Not found bundle : {bundleName}");
-		}
-
-		/// <summary>
-		/// 获取资源信息类
-		/// </summary>
-		public ReportAssetInfo GetAssetInfo(string assetPath)
-		{
-			foreach (var assetInfo in AssetInfos)
-			{
-				if (assetInfo.AssetPath == assetPath)
-					return assetInfo;
-			}
-			throw new Exception($"Not found asset : {assetPath}");
-		}
-
-
-		public static void Serialize(string savePath, BuildReport buildReport)
-		{
-			if (File.Exists(savePath))
-				File.Delete(savePath);
-
-			string json = JsonUtility.ToJson(buildReport, true);
-			FileUtility.WriteAllText(savePath, json);
-		}
-		public static BuildReport Deserialize(string jsonData)
-		{
-			BuildReport report = JsonUtility.FromJson<BuildReport>(jsonData);
-			return report;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/BuildReport.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 0f35afda8a63f874fb78877d65dafdd2
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 51
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportAssetInfo.cs

@@ -1,51 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace YooAsset.Editor
-{
-	[Serializable]
-	public class ReportAssetInfo
-	{
-		/// <summary>
-		/// 可寻址地址
-		/// </summary>
-		public string Address;
-
-		/// <summary>
-		/// 资源路径
-		/// </summary>
-		public string AssetPath;
-
-		/// <summary>
-		/// 资源GUID
-		/// 说明:Meta文件记录的GUID
-		/// </summary>
-		public string AssetGUID;
-
-		/// <summary>
-		/// 资源的分类标签
-		/// </summary>
-		public string[] AssetTags;
-		
-		/// <summary>
-		/// 所属资源包名称
-		/// </summary>
-		public string MainBundleName;
-
-		/// <summary>
-		/// 所属资源包的大小
-		/// </summary>
-		public long MainBundleSize;
-		
-		/// <summary>
-		/// 依赖的资源包名称列表
-		/// </summary>
-		public List<string> DependBundles = new List<string>();
-
-		/// <summary>
-		/// 依赖的资源路径列表
-		/// </summary>
-		public List<string> DependAssets = new List<string>();
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportAssetInfo.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 3ef16d696d8ffbd488c27e539f1966ad
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 72
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportBundleInfo.cs

@@ -1,72 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace YooAsset.Editor
-{
-	[Serializable]
-	public class ReportBundleInfo
-	{
-		/// <summary>
-		/// 资源包名称
-		/// </summary>
-		public string BundleName;
-
-		/// <summary>
-		/// 文件名称
-		/// </summary>
-		public string FileName;
-
-		/// <summary>
-		/// 文件哈希值
-		/// </summary>
-		public string FileHash;
-
-		/// <summary>
-		/// 文件校验码
-		/// </summary>
-		public string FileCRC;
-
-		/// <summary>
-		/// 文件大小(字节数)
-		/// </summary>
-		public long FileSize;
-
-		/// <summary>
-		/// 是否为原生文件
-		/// </summary>
-		public bool IsRawFile;
-
-		/// <summary>
-		/// 加载方法
-		/// </summary>
-		public EBundleLoadMethod LoadMethod;
-
-		/// <summary>
-		/// Tags
-		/// </summary>
-		public string[] Tags;
-
-		/// <summary>
-		/// 引用该资源包的ID列表
-		/// </summary>
-		public int[] ReferenceIDs;
-
-		/// <summary>
-		/// 该资源包内包含的所有资源
-		/// </summary>
-		public List<string> AllBuiltinAssets = new List<string>();
-
-		/// <summary>
-		/// 获取资源分类标签的字符串
-		/// </summary>
-		public string GetTagsString()
-		{
-			if (Tags != null)
-				return String.Join(";", Tags);
-			else
-				return string.Empty;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportBundleInfo.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 26aa55851e9252b4ab0655ee60526cb0
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 36
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportRedundancyInfo.cs

@@ -1,36 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace YooAsset.Editor
-{
-	[Serializable]
-	public class ReportRedundancyInfo
-	{
-		/// <summary>
-		/// 资源路径
-		/// </summary>
-		public string AssetPath;
-
-		/// <summary>
-		/// 资源类型
-		/// </summary>
-		public string AssetType;
-
-		/// <summary>
-		/// 资源GUID
-		/// 说明:Meta文件记录的GUID
-		/// </summary>
-		public string AssetGUID;
-
-		/// <summary>
-		/// 资源文件大小
-		/// </summary>
-		public long FileSize;
-
-		/// <summary>
-		/// 冗余的资源包数量
-		/// </summary>
-		public int Number;
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportRedundancyInfo.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 7fbb7b27f54d3b0439a951348fd9d785
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 102
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportSummary.cs

@@ -1,102 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	[Serializable]
-	public class ReportSummary
-	{
-		/// <summary>
-		/// YooAsset版本
-		/// </summary>
-		public string YooVersion;
-
-		/// <summary>
-		/// 引擎版本
-		/// </summary>
-		public string UnityVersion;
-
-		/// <summary>
-		/// 构建时间
-		/// </summary>
-		public string BuildDate;
-
-		/// <summary>
-		/// 构建耗时(单位:秒)
-		/// </summary>
-		public int BuildSeconds;
-
-		/// <summary>
-		/// 构建平台
-		/// </summary>
-		public BuildTarget BuildTarget;
-
-		/// <summary>
-		/// 构建管线
-		/// </summary>
-		public EBuildPipeline BuildPipeline;
-
-		/// <summary>
-		/// 构建模式
-		/// </summary>
-		public EBuildMode BuildMode;
-
-		/// <summary>
-		/// 构建包裹名称
-		/// </summary>
-		public string BuildPackageName;
-
-		/// <summary>
-		/// 构建包裹版本
-		/// </summary>
-		public string BuildPackageVersion;
-
-		/// <summary>
-		/// 启用可寻址资源定位
-		/// </summary>
-		public bool EnableAddressable;
-
-		/// <summary>
-		/// 资源定位地址大小写不敏感
-		/// </summary>
-		public bool LocationToLower;
-
-		/// <summary>
-		/// 包含资源GUID数据
-		/// </summary>
-		public bool IncludeAssetGUID;
-
-		/// <summary>
-		/// 资源包名唯一化
-		/// </summary>
-		public bool UniqueBundleName;
-
-		/// <summary>
-		/// 共享资源的打包规则类名
-		/// </summary>
-		public string SharedPackRuleClassName;
-
-		/// <summary>
-		/// 加密服务类名称
-		/// </summary>
-		public string EncryptionServicesClassName;
-
-		// 构建参数
-		public EOutputNameStyle OutputNameStyle;
-		public ECompressOption CompressOption;
-		public bool DisableWriteTypeTree;
-		public bool IgnoreTypeTreeChanges;
-
-		// 构建结果
-		public int AssetFileTotalCount;
-		public int MainAssetTotalCount;
-		public int AllBundleTotalCount;
-		public long AllBundleTotalSize;
-		public int EncryptedBundleTotalCount;
-		public long EncryptedBundleTotalSize;
-		public int RawBundleTotalCount;
-		public long RawBundleTotalSize;
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildReport/ReportSummary.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: cc215f5628022c345be919a0e21fcc8c
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 2875232ad7f87c148b752d432f3a54f2
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 50
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildContext.cs

@@ -1,50 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace YooAsset.Editor
-{
-	public class BuildContext
-	{
-		private readonly Dictionary<System.Type, IContextObject> _contextObjects = new Dictionary<System.Type, IContextObject>();
-
-		/// <summary>
-		/// 清空所有情景对象
-		/// </summary>
-		public void ClearAllContext()
-		{
-			_contextObjects.Clear();
-		}
-
-		/// <summary>
-		/// 设置情景对象
-		/// </summary>
-		public void SetContextObject(IContextObject contextObject)
-		{
-			if (contextObject == null)
-				throw new ArgumentNullException("contextObject");
-
-			var type = contextObject.GetType();
-			if (_contextObjects.ContainsKey(type))
-				throw new Exception($"Context object {type} is already existed.");
-
-			_contextObjects.Add(type, contextObject);
-		}
-
-		/// <summary>
-		/// 获取情景对象
-		/// </summary>
-		public T GetContextObject<T>() where T : IContextObject
-		{
-			var type = typeof(T);
-			if (_contextObjects.TryGetValue(type, out IContextObject contextObject))
-			{
-				return (T)contextObject;
-			}
-			else
-			{
-				throw new Exception($"Not found context object : {type}");
-			}
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildContext.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 6a232601f99c4634ea17fca4979f80ab
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 33
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildLogger.cs

@@ -1,33 +0,0 @@
-using System;
-using System.IO;
-using System.Collections.Generic;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	public static class BuildLogger
-	{
-		private static bool _enableLog = true;
-
-		public static void InitLogger(bool enableLog)
-		{
-			_enableLog = enableLog;
-		}
-
-		public static void Log(string message)
-		{
-			if (_enableLog)
-			{
-				Debug.Log(message);
-			}
-		}
-		public static void Warning(string message)
-		{
-			Debug.LogWarning(message);
-		}
-		public static void Error(string message)
-		{
-			Debug.LogError(message);
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildLogger.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 2bc82466a51f50141975e4424095aa09
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 29
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildResult.cs

@@ -1,29 +0,0 @@
-
-namespace YooAsset.Editor
-{
-    /// <summary>
-    /// 构建结果
-    /// </summary>
-    public class BuildResult
-    {
-        /// <summary>
-        /// 构建是否成功
-        /// </summary>
-        public bool Success;
-
-        /// <summary>
-        /// 构建失败的任务
-        /// </summary>
-        public string FailedTask;
-
-        /// <summary>
-        /// 构建失败的信息
-        /// </summary>
-        public string ErrorInfo;
-
-        /// <summary>
-        /// 输出的补丁包目录
-        /// </summary>
-        public string OutputPackageDirectory;
-    }
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildResult.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: e0855c4b5eaa26942bd7ad177fe3c288
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 72
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildRunner.cs

@@ -1,72 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Diagnostics;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	public class BuildRunner
-	{
-		private static Stopwatch _buildWatch;
-
-		/// <summary>
-		/// 总耗时
-		/// </summary>
-		public static int TotalSeconds = 0;
-
-		/// <summary>
-		/// 执行构建流程
-		/// </summary>
-		/// <returns>如果成功返回TRUE,否则返回FALSE</returns>
-		public static BuildResult Run(List<IBuildTask> pipeline, BuildContext context)
-		{
-			if (pipeline == null)
-				throw new ArgumentNullException("pipeline");
-			if (context == null)
-				throw new ArgumentNullException("context");
-
-			BuildResult buildResult = new BuildResult();
-			buildResult.Success = true;
-			TotalSeconds = 0;
-			for (int i = 0; i < pipeline.Count; i++)
-			{
-				IBuildTask task = pipeline[i];
-				try
-				{
-					_buildWatch = Stopwatch.StartNew();
-					var taskAttribute = task.GetType().GetCustomAttribute<TaskAttribute>();
-					if (taskAttribute != null)
-						BuildLogger.Log($"---------------------------------------->{taskAttribute.TaskDesc}<---------------------------------------");
-					task.Run(context);
-					_buildWatch.Stop();
-
-					// 统计耗时
-					int seconds = GetBuildSeconds();
-					TotalSeconds += seconds;
-					if (taskAttribute != null)
-						BuildLogger.Log($"{taskAttribute.TaskDesc}耗时:{seconds}秒");
-				}
-				catch (Exception e)
-				{
-					EditorTools.ClearProgressBar();
-					buildResult.FailedTask = task.GetType().Name;
-					buildResult.ErrorInfo = e.ToString();
-					buildResult.Success = false;
-					break;
-				}
-			}
-
-			// 返回运行结果
-			BuildLogger.Log($"构建过程总计耗时:{TotalSeconds}秒");
-			return buildResult;
-		}
-
-		private static int GetBuildSeconds()
-		{
-			float seconds = _buildWatch.ElapsedMilliseconds / 1000f;
-			return (int)seconds;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/BuildRunner.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 79014124da678684388454d6ea892722
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IBuildTask.cs

@@ -1,8 +0,0 @@
-
-namespace YooAsset.Editor
-{
-    public interface IBuildTask
-    {
-        void Run(BuildContext context);
-    }
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IBuildTask.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 8888657c45e12c646a8349bac6bf0326
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 7
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IContextObject.cs

@@ -1,7 +0,0 @@
-
-namespace YooAsset.Editor
-{
-	public interface IContextObject
-	{
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/IContextObject.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 151a4acd5ad1c2046be20e080f9bdad4
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 18
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/TaskAttribute.cs

@@ -1,18 +0,0 @@
-using System;
-
-namespace YooAsset.Editor
-{
-	[AttributeUsage(AttributeTargets.Class)]
-	public class TaskAttribute : Attribute
-	{
-		/// <summary>
-		/// 任务说明
-		/// </summary>
-		public string TaskDesc;
-
-		public TaskAttribute(string taskDesc)
-		{
-			TaskDesc = taskDesc;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildSystem/TaskAttribute.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 35749e57d9a3da84aa60c348bc6bbe9d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 254f430e0264bd84387878f8d7280e44
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 52
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/SBPBuildTasks.cs

@@ -1,52 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor.Build.Pipeline;
-using UnityEditor.Build.Pipeline.Interfaces;
-
-namespace UnityEditor.Build.Pipeline.Tasks
-{
-	public static class SBPBuildTasks
-	{
-		public static IList<IBuildTask> Create(string builtInShaderBundleName)
-		{
-			var buildTasks = new List<IBuildTask>();
-			
-			// Setup
-			buildTasks.Add(new SwitchToBuildPlatform());
-			buildTasks.Add(new RebuildSpriteAtlasCache());
-
-			// Player Scripts
-			buildTasks.Add(new BuildPlayerScripts());
-			buildTasks.Add(new PostScriptsCallback());
-
-			// Dependency
-			buildTasks.Add(new CalculateSceneDependencyData());
-#if UNITY_2019_3_OR_NEWER
-			buildTasks.Add(new CalculateCustomDependencyData());
-#endif
-			buildTasks.Add(new CalculateAssetDependencyData());
-			buildTasks.Add(new StripUnusedSpriteSources());
-			buildTasks.Add(new CreateBuiltInShadersBundle(builtInShaderBundleName));
-			buildTasks.Add(new PostDependencyCallback());
-
-			// Packing
-			buildTasks.Add(new GenerateBundlePacking());
-			buildTasks.Add(new UpdateBundleObjectLayout());
-			buildTasks.Add(new GenerateBundleCommands());
-			buildTasks.Add(new GenerateSubAssetPathMaps());
-			buildTasks.Add(new GenerateBundleMaps());
-			buildTasks.Add(new PostPackingCallback());
-
-			// Writing
-			buildTasks.Add(new WriteSerializedFiles());
-			buildTasks.Add(new ArchiveAndCompressBundles());
-			buildTasks.Add(new AppendBundleHash());
-			buildTasks.Add(new GenerateLinkXml());
-			buildTasks.Add(new PostWritingCallback());
-
-			return buildTasks;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/SBPBuildTasks.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: f38422f6a64300243af6b4fbf84644ba
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 50
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding.cs

@@ -1,50 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("资源构建内容打包")]
-	public class TaskBuilding : IBuildTask
-	{
-		public class BuildResultContext : IContextObject
-		{
-			public AssetBundleManifest UnityManifest;
-		}
-
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-
-			// 模拟构建模式下跳过引擎构建
-			var buildMode = buildParametersContext.Parameters.BuildMode;
-			if (buildMode == EBuildMode.SimulateBuild)
-				return;
-
-			// 开始构建
-			string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
-			BuildAssetBundleOptions buildOptions = buildParametersContext.GetPipelineBuildOptions();
-			AssetBundleManifest buildResults = BuildPipeline.BuildAssetBundles(pipelineOutputDirectory, buildMapContext.GetPipelineBuilds(), buildOptions, buildParametersContext.Parameters.BuildTarget);
-			if (buildResults == null)
-			{
-				throw new Exception("构建过程中发生错误!");
-			}
-
-			if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
-			{
-				string unityOutputManifestFilePath = $"{pipelineOutputDirectory}/{YooAssetSettings.OutputFolderName}";
-				if (System.IO.File.Exists(unityOutputManifestFilePath) == false)
-					throw new Exception("构建过程中发生严重错误!请查阅上下文日志!");
-			}
-
-			BuildLogger.Log("Unity引擎打包成功!");
-			BuildResultContext buildResultContext = new BuildResultContext();
-			buildResultContext.UnityManifest = buildResults;
-			context.SetContextObject(buildResultContext);
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 9466e826c135e994c84961e4b921ca5f
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 58
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding_SBP.cs

@@ -1,58 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEditor.Build.Pipeline;
-using UnityEditor.Build.Pipeline.Interfaces;
-using UnityEditor.Build.Pipeline.Tasks;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("资源构建内容打包")]
-	public class TaskBuilding_SBP : IBuildTask
-	{
-		public class BuildResultContext : IContextObject
-		{
-			public IBundleBuildResults Results;
-		}
-
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-
-			// 模拟构建模式下跳过引擎构建
-			var buildMode = buildParametersContext.Parameters.BuildMode;
-			if (buildMode == EBuildMode.SimulateBuild)
-				return;
-
-			// 构建内容
-			var buildContent = new BundleBuildContent(buildMapContext.GetPipelineBuilds());
-
-			// 开始构建
-			IBundleBuildResults buildResults;
-			var buildParameters = buildParametersContext.GetSBPBuildParameters();
-			var taskList = SBPBuildTasks.Create(buildMapContext.Command.ShadersBundleName);
-			ReturnCode exitCode = ContentPipeline.BuildAssetBundles(buildParameters, buildContent, out buildResults, taskList);
-			if (exitCode < 0)
-			{
-				throw new Exception($"构建过程中发生错误 : {exitCode}");
-			}
-
-			// 创建着色器信息
-			// 说明:解决因为着色器资源包导致验证失败。
-			// 例如:当项目里没有着色器,如果有依赖内置着色器就会验证失败。
-			string shadersBundleName = buildMapContext.Command.ShadersBundleName;
-			if (buildResults.BundleInfos.ContainsKey(shadersBundleName))
-			{
-				buildMapContext.CreateShadersBundleInfo(shadersBundleName);
-			}
-
-			BuildLogger.Log("Unity引擎打包成功!");
-			BuildResultContext buildResultContext = new BuildResultContext();
-			buildResultContext.Results = buildResults;
-			context.SetContextObject(buildResultContext);
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskBuilding_SBP.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 1af5fed7e9f83174d868c12b41c4a79e
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 100
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyBuildinFiles.cs

@@ -1,100 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("拷贝内置文件到流目录")]
-	public class TaskCopyBuildinFiles : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var manifestContext = context.GetContextObject<ManifestContext>();
-			var buildMode = buildParametersContext.Parameters.BuildMode;
-			if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
-			{
-				if (buildParametersContext.Parameters.CopyBuildinFileOption != ECopyBuildinFileOption.None)
-				{
-					CopyBuildinFilesToStreaming(buildParametersContext, manifestContext);
-				}
-			}
-		}
-
-		/// <summary>
-		/// 拷贝首包资源文件
-		/// </summary>
-		private void CopyBuildinFilesToStreaming(BuildParametersContext buildParametersContext, ManifestContext manifestContext)
-		{
-			ECopyBuildinFileOption option = buildParametersContext.Parameters.CopyBuildinFileOption;
-			string packageOutputDirectory = buildParametersContext.GetPackageOutputDirectory();
-			string streamingAssetsDirectory = buildParametersContext.GetStreamingAssetsDirectory();
-			string buildPackageName = buildParametersContext.Parameters.PackageName;
-			string buildPackageVersion = buildParametersContext.Parameters.PackageVersion;
-
-			// 加载补丁清单
-			PackageManifest manifest = manifestContext.Manifest;
-
-			// 清空流目录
-			if (option == ECopyBuildinFileOption.ClearAndCopyAll || option == ECopyBuildinFileOption.ClearAndCopyByTags)
-			{
-				EditorTools.ClearFolder(streamingAssetsDirectory);
-			}
-
-			// 拷贝补丁清单文件
-			{
-				string fileName = YooAssetSettingsData.GetManifestBinaryFileName(buildPackageName, buildPackageVersion);
-				string sourcePath = $"{packageOutputDirectory}/{fileName}";
-				string destPath = $"{streamingAssetsDirectory}/{fileName}";
-				EditorTools.CopyFile(sourcePath, destPath, true);
-			}
-
-			// 拷贝补丁清单哈希文件
-			{
-				string fileName = YooAssetSettingsData.GetPackageHashFileName(buildPackageName, buildPackageVersion);
-				string sourcePath = $"{packageOutputDirectory}/{fileName}";
-				string destPath = $"{streamingAssetsDirectory}/{fileName}";
-				EditorTools.CopyFile(sourcePath, destPath, true);
-			}
-
-			// 拷贝补丁清单版本文件
-			{
-				string fileName = YooAssetSettingsData.GetPackageVersionFileName(buildPackageName);
-				string sourcePath = $"{packageOutputDirectory}/{fileName}";
-				string destPath = $"{streamingAssetsDirectory}/{fileName}";
-				EditorTools.CopyFile(sourcePath, destPath, true);
-			}
-
-			// 拷贝文件列表(所有文件)
-			if (option == ECopyBuildinFileOption.ClearAndCopyAll || option == ECopyBuildinFileOption.OnlyCopyAll)
-			{
-				foreach (var packageBundle in manifest.BundleList)
-				{
-					string sourcePath = $"{packageOutputDirectory}/{packageBundle.FileName}";
-					string destPath = $"{streamingAssetsDirectory}/{packageBundle.FileName}";
-					EditorTools.CopyFile(sourcePath, destPath, true);
-				}
-			}
-
-			// 拷贝文件列表(带标签的文件)
-			if (option == ECopyBuildinFileOption.ClearAndCopyByTags || option == ECopyBuildinFileOption.OnlyCopyByTags)
-			{
-				string[] tags = buildParametersContext.Parameters.CopyBuildinFileTags.Split(';');
-				foreach (var packageBundle in manifest.BundleList)
-				{
-					if (packageBundle.HasTag(tags) == false)
-						continue;
-					string sourcePath = $"{packageOutputDirectory}/{packageBundle.FileName}";
-					string destPath = $"{streamingAssetsDirectory}/{packageBundle.FileName}";
-					EditorTools.CopyFile(sourcePath, destPath, true);
-				}
-			}
-
-			// 刷新目录
-			AssetDatabase.Refresh();
-			BuildLogger.Log($"内置文件拷贝完成:{streamingAssetsDirectory}");
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyBuildinFiles.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 5c77e17c3a3a57548a218f1cd26f5a55
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 44
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyRawFile.cs

@@ -1,44 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("拷贝原生文件")]
-	public class TaskCopyRawFile : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildParameters = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-
-			var buildMode = buildParameters.Parameters.BuildMode;
-			if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
-			{
-				CopyRawBundle(buildMapContext, buildParametersContext);
-			}
-		}
-
-		/// <summary>
-		/// 拷贝原生文件
-		/// </summary>
-		private void CopyRawBundle(BuildMapContext buildMapContext, BuildParametersContext buildParametersContext)
-		{
-			string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				if (bundleInfo.IsRawFile)
-				{
-					string dest = $"{pipelineOutputDirectory}/{bundleInfo.BundleName}";
-					foreach (var assetInfo in bundleInfo.AllMainAssets)
-					{
-						if (assetInfo.IsRawAsset)
-							EditorTools.CopyFile(assetInfo.AssetPath, dest, true);
-					}
-				}
-			}
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCopyRawFile.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 3625d4b8b5b79324ebf7ec19a87677e7
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 384
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateManifest.cs

@@ -1,384 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEditor.Build.Pipeline;
-using UnityEditor.Build.Pipeline.Interfaces;
-
-namespace YooAsset.Editor
-{
-	public class ManifestContext : IContextObject
-	{
-		internal PackageManifest Manifest;
-	}
-
-	[TaskAttribute("创建清单文件")]
-	public class TaskCreateManifest : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			CreateManifestFile(context);
-		}
-
-		/// <summary>
-		/// 创建补丁清单文件到输出目录
-		/// </summary>
-		private void CreateManifestFile(BuildContext context)
-		{
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildParameters = buildParametersContext.Parameters;
-			string packageOutputDirectory = buildParametersContext.GetPackageOutputDirectory();
-
-			// 创建新补丁清单
-			PackageManifest manifest = new PackageManifest();
-			manifest.FileVersion = YooAssetSettings.ManifestFileVersion;
-			manifest.EnableAddressable = buildMapContext.Command.EnableAddressable;
-			manifest.LocationToLower = buildMapContext.Command.LocationToLower;
-			manifest.IncludeAssetGUID = buildMapContext.Command.IncludeAssetGUID;
-			manifest.OutputNameStyle = (int)buildParameters.OutputNameStyle;
-			manifest.PackageName = buildParameters.PackageName;
-			manifest.PackageVersion = buildParameters.PackageVersion;
-			manifest.BundleList = GetAllPackageBundle(context);
-			manifest.AssetList = GetAllPackageAsset(context, manifest);
-
-			// 更新Unity内置资源包的引用关系
-			if (buildParameters.BuildPipeline == EBuildPipeline.ScriptableBuildPipeline)
-			{
-				if (buildParameters.BuildMode == EBuildMode.IncrementalBuild)
-				{
-					var buildResultContext = context.GetContextObject<TaskBuilding_SBP.BuildResultContext>();
-					UpdateBuiltInBundleReference(manifest, buildResultContext, buildMapContext.Command.ShadersBundleName);
-				}
-			}
-
-			// 更新资源包之间的引用关系
-			if (buildParameters.BuildPipeline == EBuildPipeline.ScriptableBuildPipeline)
-			{
-				if (buildParameters.BuildMode == EBuildMode.IncrementalBuild)
-				{
-					var buildResultContext = context.GetContextObject<TaskBuilding_SBP.BuildResultContext>();
-					UpdateScriptPipelineReference(manifest, buildResultContext);
-				}
-			}
-
-			// 更新资源包之间的引用关系
-			if (buildParameters.BuildPipeline == EBuildPipeline.BuiltinBuildPipeline)
-			{
-				if (buildParameters.BuildMode != EBuildMode.SimulateBuild)
-				{
-					var buildResultContext = context.GetContextObject<TaskBuilding.BuildResultContext>();
-					UpdateBuiltinPipelineReference(manifest, buildResultContext);
-				}
-			}
-
-			// 创建补丁清单文本文件
-			{
-				string fileName = YooAssetSettingsData.GetManifestJsonFileName(buildParameters.PackageName, buildParameters.PackageVersion);
-				string filePath = $"{packageOutputDirectory}/{fileName}";
-				ManifestTools.SerializeToJson(filePath, manifest);
-				BuildLogger.Log($"创建补丁清单文件:{filePath}");
-			}
-
-			// 创建补丁清单二进制文件
-			string packageHash;
-			{
-				string fileName = YooAssetSettingsData.GetManifestBinaryFileName(buildParameters.PackageName, buildParameters.PackageVersion);
-				string filePath = $"{packageOutputDirectory}/{fileName}";
-				ManifestTools.SerializeToBinary(filePath, manifest);
-				packageHash = HashUtility.FileMD5(filePath);
-				BuildLogger.Log($"创建补丁清单文件:{filePath}");
-
-				ManifestContext manifestContext = new ManifestContext();
-				byte[] bytesData = FileUtility.ReadAllBytes(filePath);
-				manifestContext.Manifest = ManifestTools.DeserializeFromBinary(bytesData);
-				context.SetContextObject(manifestContext);
-			}
-
-			// 创建补丁清单哈希文件
-			{
-				string fileName = YooAssetSettingsData.GetPackageHashFileName(buildParameters.PackageName, buildParameters.PackageVersion);
-				string filePath = $"{packageOutputDirectory}/{fileName}";
-				FileUtility.WriteAllText(filePath, packageHash);
-				BuildLogger.Log($"创建补丁清单哈希文件:{filePath}");
-			}
-
-			// 创建补丁清单版本文件
-			{
-				string fileName = YooAssetSettingsData.GetPackageVersionFileName(buildParameters.PackageName);
-				string filePath = $"{packageOutputDirectory}/{fileName}";
-				FileUtility.WriteAllText(filePath, buildParameters.PackageVersion);
-				BuildLogger.Log($"创建补丁清单版本文件:{filePath}");
-			}
-		}
-
-		/// <summary>
-		/// 获取资源包列表
-		/// </summary>
-		private List<PackageBundle> GetAllPackageBundle(BuildContext context)
-		{
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-
-			List<PackageBundle> result = new List<PackageBundle>(1000);
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				var packageBundle = bundleInfo.CreatePackageBundle();
-				result.Add(packageBundle);
-			}
-			return result;
-		}
-
-		/// <summary>
-		/// 获取资源列表
-		/// </summary>
-		private List<PackageAsset> GetAllPackageAsset(BuildContext context, PackageManifest manifest)
-		{
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-
-			List<PackageAsset> result = new List<PackageAsset>(1000);
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				var assetInfos = bundleInfo.GetAllManifestAssetInfos();
-				foreach (var assetInfo in assetInfos)
-				{
-					PackageAsset packageAsset = new PackageAsset();
-					packageAsset.Address = buildMapContext.Command.EnableAddressable ? assetInfo.Address : string.Empty;
-					packageAsset.AssetPath = assetInfo.AssetPath;
-					packageAsset.AssetGUID = buildMapContext.Command.IncludeAssetGUID ? assetInfo.AssetGUID : string.Empty;
-					packageAsset.AssetTags = assetInfo.AssetTags.ToArray();
-					packageAsset.BundleID = GetAssetBundleID(assetInfo.BundleName, manifest);
-					packageAsset.DependIDs = GetAssetBundleDependIDs(packageAsset.BundleID, assetInfo, manifest);
-					result.Add(packageAsset);
-				}
-			}
-			return result;
-		}
-		private int[] GetAssetBundleDependIDs(int mainBundleID, BuildAssetInfo assetInfo, PackageManifest manifest)
-		{
-			List<int> result = new List<int>();
-			foreach (var dependAssetInfo in assetInfo.AllDependAssetInfos)
-			{
-				if (dependAssetInfo.HasBundleName())
-				{
-					int bundleID = GetAssetBundleID(dependAssetInfo.BundleName, manifest);
-					if (mainBundleID != bundleID)
-					{
-						if (result.Contains(bundleID) == false)
-							result.Add(bundleID);
-					}
-				}
-			}
-			return result.ToArray();
-		}
-		private int GetAssetBundleID(string bundleName, PackageManifest manifest)
-		{
-			for (int index = 0; index < manifest.BundleList.Count; index++)
-			{
-				if (manifest.BundleList[index].BundleName == bundleName)
-					return index;
-			}
-			throw new Exception($"Not found bundle name : {bundleName}");
-		}
-
-		/// <summary>
-		/// 更新Unity内置资源包的引用关系
-		/// </summary>
-		private void UpdateBuiltInBundleReference(PackageManifest manifest, TaskBuilding_SBP.BuildResultContext buildResultContext, string shadersBunldeName)
-		{
-			// 获取所有依赖着色器资源包的资源包列表
-			List<string> shaderBundleReferenceList = new List<string>();
-			foreach (var valuePair in buildResultContext.Results.BundleInfos)
-			{
-				if (valuePair.Value.Dependencies.Any(t => t == shadersBunldeName))
-					shaderBundleReferenceList.Add(valuePair.Key);
-			}
-
-			// 注意:没有任何资源依赖着色器
-			if (shaderBundleReferenceList.Count == 0)
-				return;
-
-			// 获取着色器资源包索引
-			Predicate<PackageBundle> predicate = new Predicate<PackageBundle>(s => s.BundleName == shadersBunldeName);
-			int shaderBundleId = manifest.BundleList.FindIndex(predicate);
-			if (shaderBundleId == -1)
-				throw new Exception("没有发现着色器资源包!");
-
-			// 检测依赖交集并更新依赖ID
-			HashSet<string> tagTemps = new HashSet<string>();
-			foreach (var packageAsset in manifest.AssetList)
-			{
-				List<string> dependBundles = GetPackageAssetAllDependBundles(manifest, packageAsset);
-				List<string> conflictAssetPathList = dependBundles.Intersect(shaderBundleReferenceList).ToList();
-				if (conflictAssetPathList.Count > 0)
-				{
-					List<int> newDependIDs = new List<int>(packageAsset.DependIDs);
-					if (newDependIDs.Contains(shaderBundleId) == false)
-						newDependIDs.Add(shaderBundleId);
-					packageAsset.DependIDs = newDependIDs.ToArray();
-					foreach (var tag in packageAsset.AssetTags)
-					{
-						if (tagTemps.Contains(tag) == false)
-							tagTemps.Add(tag);
-					}
-				}
-			}
-
-			// 更新资源包标签
-			var packageBundle = manifest.BundleList[shaderBundleId];
-			List<string> newTags = new List<string>(packageBundle.Tags);
-			foreach (var tag in tagTemps)
-			{
-				if (newTags.Contains(tag) == false)
-					newTags.Add(tag);
-			}
-			packageBundle.Tags = newTags.ToArray();
-		}
-		private List<string> GetPackageAssetAllDependBundles(PackageManifest manifest, PackageAsset packageAsset)
-		{
-			List<string> result = new List<string>();
-			string mainBundle = manifest.BundleList[packageAsset.BundleID].BundleName;
-			result.Add(mainBundle);
-			foreach (var dependID in packageAsset.DependIDs)
-			{
-				string dependBundle = manifest.BundleList[dependID].BundleName;
-				result.Add(dependBundle);
-			}
-			return result;
-		}
-
-		#region 资源包引用关系相关
-		private readonly Dictionary<string, int> _cachedBundleID = new Dictionary<string, int>(10000);
-		private readonly Dictionary<string, string[]> _cachedBundleDepends = new Dictionary<string, string[]>(10000);
-
-		private void UpdateScriptPipelineReference(PackageManifest manifest, TaskBuilding_SBP.BuildResultContext buildResultContext)
-		{
-			int progressValue;
-			int totalCount = manifest.BundleList.Count;
-
-			// 缓存资源包ID
-			_cachedBundleID.Clear();
-			progressValue = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				int bundleID = GetAssetBundleID(packageBundle.BundleName, manifest);
-				_cachedBundleID.Add(packageBundle.BundleName, bundleID);
-				EditorTools.DisplayProgressBar("缓存资源包索引", ++progressValue, totalCount);
-			}
-			EditorTools.ClearProgressBar();
-
-			// 缓存资源包依赖
-			_cachedBundleDepends.Clear();
-			progressValue = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				if (packageBundle.IsRawFile)
-				{
-					_cachedBundleDepends.Add(packageBundle.BundleName, new string[] { });
-					continue;
-				}
-
-				if (buildResultContext.Results.BundleInfos.ContainsKey(packageBundle.BundleName) == false)
-					throw new Exception($"Not found bundle in SBP build results : {packageBundle.BundleName}");
-
-				var depends = buildResultContext.Results.BundleInfos[packageBundle.BundleName].Dependencies;
-				_cachedBundleDepends.Add(packageBundle.BundleName, depends);
-				EditorTools.DisplayProgressBar("缓存资源包依赖列表", ++progressValue, totalCount);
-			}
-			EditorTools.ClearProgressBar();
-
-			// 计算资源包引用列表
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				packageBundle.ReferenceIDs = GetBundleRefrenceIDs(manifest, packageBundle);
-				EditorTools.DisplayProgressBar("计算资源包引用关系", ++progressValue, totalCount);
-			}
-			EditorTools.ClearProgressBar();
-		}
-		private void UpdateBuiltinPipelineReference(PackageManifest manifest, TaskBuilding.BuildResultContext buildResultContext)
-		{
-			int progressValue;
-			int totalCount = manifest.BundleList.Count;
-
-			// 缓存资源包ID
-			_cachedBundleID.Clear();
-			progressValue = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				int bundleID = GetAssetBundleID(packageBundle.BundleName, manifest);
-				_cachedBundleID.Add(packageBundle.BundleName, bundleID);
-				EditorTools.DisplayProgressBar("缓存资源包索引", ++progressValue, totalCount);
-			}
-			EditorTools.ClearProgressBar();
-
-			// 缓存资源包依赖
-			_cachedBundleDepends.Clear();
-			progressValue = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				if (packageBundle.IsRawFile)
-				{
-					_cachedBundleDepends.Add(packageBundle.BundleName, new string[] { });
-					continue;
-				}
-
-				var depends = buildResultContext.UnityManifest.GetDirectDependencies(packageBundle.BundleName);
-				_cachedBundleDepends.Add(packageBundle.BundleName, depends);
-				EditorTools.DisplayProgressBar("缓存资源包依赖列表", ++progressValue, totalCount);
-			}
-			EditorTools.ClearProgressBar();
-
-			// 计算资源包引用列表
-			progressValue = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				packageBundle.ReferenceIDs = GetBundleRefrenceIDs(manifest, packageBundle);
-				EditorTools.DisplayProgressBar("计算资源包引用关系", ++progressValue, totalCount);
-			}
-			EditorTools.ClearProgressBar();
-		}
-
-		private int[] GetBundleRefrenceIDs(PackageManifest manifest, PackageBundle targetBundle)
-		{
-			List<string> referenceList = new List<string>();
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				string bundleName = packageBundle.BundleName;
-				if (bundleName == targetBundle.BundleName)
-					continue;
-
-				string[] dependencies = GetCachedBundleDepends(bundleName);
-				if (dependencies.Contains(targetBundle.BundleName))
-				{
-					referenceList.Add(bundleName);
-				}
-			}
-
-			List<int> result = new List<int>();
-			foreach (var bundleName in referenceList)
-			{
-				int bundleID = GetCachedBundleID(bundleName);
-				if (result.Contains(bundleID) == false)
-					result.Add(bundleID);
-			}
-			return result.ToArray();
-		}
-		private int GetCachedBundleID(string bundleName)
-		{
-			if (_cachedBundleID.TryGetValue(bundleName, out int value) == false)
-			{
-				throw new Exception($"Not found cached bundle ID : {bundleName}");
-			}
-			return value;
-		}
-		private string[] GetCachedBundleDepends(string bundleName)
-		{
-			if (_cachedBundleDepends.TryGetValue(bundleName, out string[] value) == false)
-			{
-				throw new Exception($"Not found cached bundle depends : {bundleName}");
-			}
-			return value;
-		}
-		#endregion
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateManifest.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 566c37f5a59f2e84397a9527981a7310
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 79
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreatePackage.cs

@@ -1,79 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("制作包裹")]
-	public class TaskCreatePackage : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParameters = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-			var buildMode = buildParameters.Parameters.BuildMode;
-			if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
-			{
-				CopyPackageFiles(buildParameters, buildMapContext);
-			}
-		}
-
-		/// <summary>
-		/// 拷贝补丁文件到补丁包目录
-		/// </summary>
-		private void CopyPackageFiles(BuildParametersContext buildParametersContext, BuildMapContext buildMapContext)
-		{
-			var buildParameters = buildParametersContext.Parameters;
-			string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
-			string packageOutputDirectory = buildParametersContext.GetPackageOutputDirectory();
-			BuildLogger.Log($"开始拷贝补丁文件到补丁包目录:{packageOutputDirectory}");
-
-			if (buildParameters.BuildPipeline == EBuildPipeline.ScriptableBuildPipeline)
-			{
-				// 拷贝构建日志
-				{
-					string sourcePath = $"{pipelineOutputDirectory}/buildlogtep.json";
-					string destPath = $"{packageOutputDirectory}/buildlogtep.json";
-					EditorTools.CopyFile(sourcePath, destPath, true);
-				}
-
-				// 拷贝代码防裁剪配置
-				if (buildParameters.SBPParameters.WriteLinkXML)
-				{
-					string sourcePath = $"{pipelineOutputDirectory}/link.xml";
-					string destPath = $"{packageOutputDirectory}/link.xml";
-					EditorTools.CopyFile(sourcePath, destPath, true);
-				}
-			}
-			else if (buildParameters.BuildPipeline == EBuildPipeline.BuiltinBuildPipeline)
-			{
-				// 拷贝UnityManifest序列化文件
-				{
-					string sourcePath = $"{pipelineOutputDirectory}/{YooAssetSettings.OutputFolderName}";
-					string destPath = $"{packageOutputDirectory}/{YooAssetSettings.OutputFolderName}";
-					EditorTools.CopyFile(sourcePath, destPath, true);
-				}
-
-				// 拷贝UnityManifest文本文件
-				{
-					string sourcePath = $"{pipelineOutputDirectory}/{YooAssetSettings.OutputFolderName}.manifest";
-					string destPath = $"{packageOutputDirectory}/{YooAssetSettings.OutputFolderName}.manifest";
-					EditorTools.CopyFile(sourcePath, destPath, true);
-				}
-			}
-			else
-			{
-				throw new System.NotImplementedException();
-			}
-
-			// 拷贝所有补丁文件
-			int progressValue = 0;
-			int fileTotalCount = buildMapContext.Collection.Count;
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				EditorTools.CopyFile(bundleInfo.BundleInfo.BuildOutputFilePath, bundleInfo.BundleInfo.PackageOutputFilePath, true);
-				EditorTools.DisplayProgressBar("拷贝补丁文件", ++progressValue, fileTotalCount);
-			}
-			EditorTools.ClearProgressBar();
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreatePackage.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: d110092f543e3fe40a4d3882e1a718e8
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 229
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateReport.cs

@@ -1,229 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("创建构建报告文件")]
-	public class TaskCreateReport : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParameters = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-			var manifestContext = context.GetContextObject<ManifestContext>();
-
-			var buildMode = buildParameters.Parameters.BuildMode;
-			if (buildMode != EBuildMode.SimulateBuild)
-			{
-				CreateReportFile(buildParameters, buildMapContext, manifestContext);
-			}
-		}
-
-		private void CreateReportFile(BuildParametersContext buildParametersContext, BuildMapContext buildMapContext, ManifestContext manifestContext)
-		{
-			var buildParameters = buildParametersContext.Parameters;
-
-			string packageOutputDirectory = buildParametersContext.GetPackageOutputDirectory();
-			PackageManifest manifest = manifestContext.Manifest;
-			BuildReport buildReport = new BuildReport();
-
-			// 概述信息
-			{
-#if UNITY_2019_4_OR_NEWER
-				UnityEditor.PackageManager.PackageInfo packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssembly(typeof(BuildReport).Assembly);
-				if (packageInfo != null)
-					buildReport.Summary.YooVersion = packageInfo.version;
-#endif
-				buildReport.Summary.UnityVersion = UnityEngine.Application.unityVersion;
-				buildReport.Summary.BuildDate = DateTime.Now.ToString();
-				buildReport.Summary.BuildSeconds = BuildRunner.TotalSeconds;
-				buildReport.Summary.BuildTarget = buildParameters.BuildTarget;
-				buildReport.Summary.BuildPipeline = buildParameters.BuildPipeline;
-				buildReport.Summary.BuildMode = buildParameters.BuildMode;
-				buildReport.Summary.BuildPackageName = buildParameters.PackageName;
-				buildReport.Summary.BuildPackageVersion = buildParameters.PackageVersion;
-				buildReport.Summary.EnableAddressable = buildMapContext.Command.EnableAddressable;
-				buildReport.Summary.LocationToLower = buildMapContext.Command.LocationToLower;
-				buildReport.Summary.IncludeAssetGUID = buildMapContext.Command.IncludeAssetGUID;
-				buildReport.Summary.UniqueBundleName = buildMapContext.Command.UniqueBundleName;
-				buildReport.Summary.SharedPackRuleClassName = buildParameters.SharedPackRule == null ?
-					"null" : buildParameters.SharedPackRule.GetType().FullName;
-				buildReport.Summary.EncryptionServicesClassName = buildParameters.EncryptionServices == null ?
-					"null" : buildParameters.EncryptionServices.GetType().FullName;
-
-				// 构建参数
-				buildReport.Summary.OutputNameStyle = buildParameters.OutputNameStyle;
-				buildReport.Summary.CompressOption = buildParameters.CompressOption;
-				buildReport.Summary.DisableWriteTypeTree = buildParameters.DisableWriteTypeTree;
-				buildReport.Summary.IgnoreTypeTreeChanges = buildParameters.IgnoreTypeTreeChanges;
-
-				// 构建结果
-				buildReport.Summary.AssetFileTotalCount = buildMapContext.AssetFileCount;
-				buildReport.Summary.MainAssetTotalCount = GetMainAssetCount(manifest);
-				buildReport.Summary.AllBundleTotalCount = GetAllBundleCount(manifest);
-				buildReport.Summary.AllBundleTotalSize = GetAllBundleSize(manifest);
-				buildReport.Summary.EncryptedBundleTotalCount = GetEncryptedBundleCount(manifest);
-				buildReport.Summary.EncryptedBundleTotalSize = GetEncryptedBundleSize(manifest);
-				buildReport.Summary.RawBundleTotalCount = GetRawBundleCount(manifest);
-				buildReport.Summary.RawBundleTotalSize = GetRawBundleSize(manifest);
-			}
-
-			// 资源对象列表
-			buildReport.AssetInfos = new List<ReportAssetInfo>(manifest.AssetList.Count);
-			foreach (var packageAsset in manifest.AssetList)
-			{
-				var mainBundle = manifest.BundleList[packageAsset.BundleID];
-				ReportAssetInfo reportAssetInfo = new ReportAssetInfo();
-				reportAssetInfo.Address = packageAsset.Address;
-				reportAssetInfo.AssetPath = packageAsset.AssetPath;
-				reportAssetInfo.AssetTags = packageAsset.AssetTags;
-				reportAssetInfo.AssetGUID = AssetDatabase.AssetPathToGUID(packageAsset.AssetPath);
-				reportAssetInfo.MainBundleName = mainBundle.BundleName;
-				reportAssetInfo.MainBundleSize = mainBundle.FileSize;
-				reportAssetInfo.DependBundles = GetDependBundles(manifest, packageAsset);
-				reportAssetInfo.DependAssets = GetDependAssets(buildMapContext, mainBundle.BundleName, packageAsset.AssetPath);
-				buildReport.AssetInfos.Add(reportAssetInfo);
-			}
-
-			// 资源包列表
-			buildReport.BundleInfos = new List<ReportBundleInfo>(manifest.BundleList.Count);
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				ReportBundleInfo reportBundleInfo = new ReportBundleInfo();
-				reportBundleInfo.BundleName = packageBundle.BundleName;
-				reportBundleInfo.FileName = packageBundle.FileName;
-				reportBundleInfo.FileHash = packageBundle.FileHash;
-				reportBundleInfo.FileCRC = packageBundle.FileCRC;
-				reportBundleInfo.FileSize = packageBundle.FileSize;
-				reportBundleInfo.IsRawFile = packageBundle.IsRawFile;
-				reportBundleInfo.LoadMethod = (EBundleLoadMethod)packageBundle.LoadMethod;
-				reportBundleInfo.Tags = packageBundle.Tags;
-				reportBundleInfo.ReferenceIDs = packageBundle.ReferenceIDs;
-				reportBundleInfo.AllBuiltinAssets = GetAllBuiltinAssets(buildMapContext, packageBundle.BundleName);
-				buildReport.BundleInfos.Add(reportBundleInfo);
-			}
-
-			// 冗余资源列表
-			buildReport.RedundancyInfos = new List<ReportRedundancyInfo>(buildMapContext.RedundancyInfos);
-
-			// 序列化文件
-			string fileName = YooAssetSettingsData.GetReportFileName(buildParameters.PackageName, buildParameters.PackageVersion);
-			string filePath = $"{packageOutputDirectory}/{fileName}";
-			BuildReport.Serialize(filePath, buildReport);
-			BuildLogger.Log($"资源构建报告文件创建完成:{filePath}");
-		}
-
-		/// <summary>
-		/// 获取资源对象依赖的所有资源包
-		/// </summary>
-		private List<string> GetDependBundles(PackageManifest manifest, PackageAsset packageAsset)
-		{
-			List<string> dependBundles = new List<string>(packageAsset.DependIDs.Length);
-			foreach (int index in packageAsset.DependIDs)
-			{
-				string dependBundleName = manifest.BundleList[index].BundleName;
-				dependBundles.Add(dependBundleName);
-			}
-			return dependBundles;
-		}
-
-		/// <summary>
-		/// 获取资源对象依赖的其它所有资源
-		/// </summary>
-		private List<string> GetDependAssets(BuildMapContext buildMapContext, string bundleName, string assetPath)
-		{
-			List<string> result = new List<string>();
-			var bundleInfo = buildMapContext.GetBundleInfo(bundleName);
-			{
-				BuildAssetInfo findAssetInfo = null;
-				foreach (var assetInfo in bundleInfo.AllMainAssets)
-				{
-					if (assetInfo.AssetPath == assetPath)
-					{
-						findAssetInfo = assetInfo;
-						break;
-					}
-				}
-				if (findAssetInfo == null)
-				{
-					throw new Exception($"Not found asset {assetPath} in bunlde {bundleName}");
-				}
-				foreach (var dependAssetInfo in findAssetInfo.AllDependAssetInfos)
-				{
-					result.Add(dependAssetInfo.AssetPath);
-				}
-			}
-			return result;
-		}
-
-		/// <summary>
-		/// 获取该资源包内的所有资源
-		/// </summary>
-		private List<string> GetAllBuiltinAssets(BuildMapContext buildMapContext, string bundleName)
-		{
-			var bundleInfo = buildMapContext.GetBundleInfo(bundleName);
-			return bundleInfo.GetAllBuiltinAssetPaths();
-		}
-
-		private int GetMainAssetCount(PackageManifest manifest)
-		{
-			return manifest.AssetList.Count;
-		}
-		private int GetAllBundleCount(PackageManifest manifest)
-		{
-			return manifest.BundleList.Count;
-		}
-		private long GetAllBundleSize(PackageManifest manifest)
-		{
-			long fileBytes = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				fileBytes += packageBundle.FileSize;
-			}
-			return fileBytes;
-		}
-		private int GetEncryptedBundleCount(PackageManifest manifest)
-		{
-			int fileCount = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				if (packageBundle.LoadMethod != (byte)EBundleLoadMethod.Normal)
-					fileCount++;
-			}
-			return fileCount;
-		}
-		private long GetEncryptedBundleSize(PackageManifest manifest)
-		{
-			long fileBytes = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				if (packageBundle.LoadMethod != (byte)EBundleLoadMethod.Normal)
-					fileBytes += packageBundle.FileSize;
-			}
-			return fileBytes;
-		}
-		private int GetRawBundleCount(PackageManifest manifest)
-		{
-			int fileCount = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				if (packageBundle.IsRawFile)
-					fileCount++;
-			}
-			return fileCount;
-		}
-		private long GetRawBundleSize(PackageManifest manifest)
-		{
-			long fileBytes = 0;
-			foreach (var packageBundle in manifest.BundleList)
-			{
-				if (packageBundle.IsRawFile)
-					fileBytes += packageBundle.FileSize;
-			}
-			return fileBytes;
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskCreateReport.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: bd12814185b4c7044b0afd59f9c1c948
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 67
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskEncryption.cs

@@ -1,67 +0,0 @@
-using System;
-using System.Linq;
-using System.IO;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("资源包加密")]
-	public class TaskEncryption : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParameters = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-
-			var buildMode = buildParameters.Parameters.BuildMode;
-			if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
-			{
-				EncryptingBundleFiles(buildParameters, buildMapContext);
-			}
-		}
-
-		/// <summary>
-		/// 加密文件
-		/// </summary>
-		private void EncryptingBundleFiles(BuildParametersContext buildParametersContext, BuildMapContext buildMapContext)
-		{
-			var encryptionServices = buildParametersContext.Parameters.EncryptionServices;
-			if (encryptionServices == null)
-				return;
-
-			if (encryptionServices.GetType() == typeof(EncryptionNone))
-				return;
-
-			int progressValue = 0;
-			string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				EncryptFileInfo fileInfo = new EncryptFileInfo();
-				fileInfo.BundleName = bundleInfo.BundleName;
-				fileInfo.FilePath = $"{pipelineOutputDirectory}/{bundleInfo.BundleName}";
-
-				var encryptResult = encryptionServices.Encrypt(fileInfo);		
-				if (encryptResult.LoadMethod != EBundleLoadMethod.Normal)
-				{
-					// 注意:原生文件不支持加密
-					if (bundleInfo.IsRawFile)
-					{
-						BuildLogger.Warning($"Encryption not support raw file : {bundleInfo.BundleName}");
-						continue;
-					}
-
-					string filePath = $"{pipelineOutputDirectory}/{bundleInfo.BundleName}.encrypt";
-					FileUtility.WriteAllBytes(filePath, encryptResult.EncryptedData);
-					bundleInfo.EncryptedFilePath = filePath;
-					bundleInfo.LoadMethod = encryptResult.LoadMethod;
-					BuildLogger.Log($"Bundle文件加密完成:{filePath}");
-				}
-
-				// 进度条
-				EditorTools.DisplayProgressBar("加密资源包", ++progressValue, buildMapContext.Collection.Count);
-			}
-			EditorTools.ClearProgressBar();
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskEncryption.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: c78d471226b9c8d429a2d962370f480b
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 229
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskGetBuildMap.cs

@@ -1,229 +0,0 @@
-using System;
-using System.IO;
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("获取资源构建内容")]
-	public class TaskGetBuildMap : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = CreateBuildMap(buildParametersContext.Parameters);
-			context.SetContextObject(buildMapContext);
-			BuildLogger.Log("构建内容准备完毕!");
-
-			// 检测构建结果
-			CheckBuildMapContent(buildMapContext);
-		}
-
-		/// <summary>
-		/// 资源构建上下文
-		/// </summary>
-		public BuildMapContext CreateBuildMap(BuildParameters buildParameters)
-		{
-			var buildMode = buildParameters.BuildMode;
-			var packageName = buildParameters.PackageName;
-			var sharedPackRule = buildParameters.SharedPackRule;
-
-			Dictionary<string, BuildAssetInfo> allBuildAssetInfoDic = new Dictionary<string, BuildAssetInfo>(1000);
-
-			// 1. 检测配置合法性
-			AssetBundleCollectorSettingData.Setting.CheckConfigError();
-
-			// 2. 获取所有收集器收集的资源
-			var collectResult = AssetBundleCollectorSettingData.Setting.GetPackageAssets(buildMode, packageName);
-			List<CollectAssetInfo> allCollectAssetInfos = collectResult.CollectAssets;
-
-			// 3. 剔除未被引用的依赖项资源
-			RemoveZeroReferenceAssets(allCollectAssetInfos);
-
-			// 4. 录入所有收集器收集的资源
-			foreach (var collectAssetInfo in allCollectAssetInfos)
-			{
-				if (allBuildAssetInfoDic.ContainsKey(collectAssetInfo.AssetPath) == false)
-				{
-					var buildAssetInfo = new BuildAssetInfo(collectAssetInfo.CollectorType, collectAssetInfo.BundleName,
-						collectAssetInfo.Address, collectAssetInfo.AssetPath, collectAssetInfo.IsRawAsset);
-					buildAssetInfo.AddAssetTags(collectAssetInfo.AssetTags);
-					buildAssetInfo.AddBundleTags(collectAssetInfo.AssetTags);
-					allBuildAssetInfoDic.Add(collectAssetInfo.AssetPath, buildAssetInfo);
-				}
-				else
-				{
-					throw new Exception($"Should never get here !");
-				}
-			}
-
-			// 5. 录入所有收集资源的依赖资源
-			foreach (var collectAssetInfo in allCollectAssetInfos)
-			{
-				string collectAssetBundleName = collectAssetInfo.BundleName;
-				foreach (var dependAssetPath in collectAssetInfo.DependAssets)
-				{
-					if (allBuildAssetInfoDic.ContainsKey(dependAssetPath))
-					{
-						allBuildAssetInfoDic[dependAssetPath].AddBundleTags(collectAssetInfo.AssetTags);
-						allBuildAssetInfoDic[dependAssetPath].AddReferenceBundleName(collectAssetBundleName);
-					}
-					else
-					{
-						var buildAssetInfo = new BuildAssetInfo(dependAssetPath);
-						buildAssetInfo.AddBundleTags(collectAssetInfo.AssetTags);
-						buildAssetInfo.AddReferenceBundleName(collectAssetBundleName);
-						allBuildAssetInfoDic.Add(dependAssetPath, buildAssetInfo);
-					}
-				}
-			}
-
-			// 6. 填充所有收集资源的依赖列表
-			foreach (var collectAssetInfo in allCollectAssetInfos)
-			{
-				var dependAssetInfos = new List<BuildAssetInfo>(collectAssetInfo.DependAssets.Count);
-				foreach (var dependAssetPath in collectAssetInfo.DependAssets)
-				{
-					if (allBuildAssetInfoDic.TryGetValue(dependAssetPath, out BuildAssetInfo value))
-						dependAssetInfos.Add(value);
-					else
-						throw new Exception("Should never get here !");
-				}
-				allBuildAssetInfoDic[collectAssetInfo.AssetPath].SetAllDependAssetInfos(dependAssetInfos);
-			}
-
-			// 7. 记录关键信息
-			BuildMapContext context = new BuildMapContext();
-			context.AssetFileCount = allBuildAssetInfoDic.Count;
-			context.Command = collectResult.Command;
-
-			// 8. 计算共享资源的包名		
-			var command = collectResult.Command;
-			foreach (var buildAssetInfo in allBuildAssetInfoDic.Values)
-			{
-				buildAssetInfo.CalculateShareBundleName(sharedPackRule, command.UniqueBundleName, command.PackageName, command.ShadersBundleName);
-			}
-
-			// 9. 记录冗余资源
-			foreach (var buildAssetInfo in allBuildAssetInfoDic.Values)
-			{
-				if (buildAssetInfo.IsRedundancyAsset())
-				{
-					var redundancyInfo = new ReportRedundancyInfo();
-					redundancyInfo.AssetPath = buildAssetInfo.AssetPath;
-					redundancyInfo.AssetType = AssetDatabase.GetMainAssetTypeAtPath(buildAssetInfo.AssetPath).Name;
-					redundancyInfo.AssetGUID = AssetDatabase.AssetPathToGUID(buildAssetInfo.AssetPath);
-					redundancyInfo.FileSize = FileUtility.GetFileSize(buildAssetInfo.AssetPath);
-					redundancyInfo.Number = buildAssetInfo.GetReferenceBundleCount();
-					context.RedundancyInfos.Add(redundancyInfo);
-				}
-			}
-
-			// 10. 移除不参与构建的资源
-			List<BuildAssetInfo> removeBuildList = new List<BuildAssetInfo>();
-			foreach (var buildAssetInfo in allBuildAssetInfoDic.Values)
-			{
-				if (buildAssetInfo.HasBundleName() == false)
-					removeBuildList.Add(buildAssetInfo);
-			}
-			foreach (var removeValue in removeBuildList)
-			{
-				allBuildAssetInfoDic.Remove(removeValue.AssetPath);
-			}
-
-			// 11. 构建资源列表
-			var allPackAssets = allBuildAssetInfoDic.Values.ToList();
-			if (allPackAssets.Count == 0)
-				throw new Exception("构建的资源列表不能为空");
-			foreach (var assetInfo in allPackAssets)
-			{
-				context.PackAsset(assetInfo);
-			}
-
-			return context;
-		}
-		private void RemoveZeroReferenceAssets(List<CollectAssetInfo> allCollectAssetInfos)
-		{
-			// 1. 检测是否任何存在依赖资源
-			bool hasAnyDependCollector = false;
-			foreach (var collectAssetInfo in allCollectAssetInfos)
-			{
-				var collectorType = collectAssetInfo.CollectorType;
-				if (collectorType == ECollectorType.DependAssetCollector)
-				{
-					hasAnyDependCollector = true;
-					break;
-				}
-			}
-			if (hasAnyDependCollector == false)
-				return;
-
-			// 2. 获取所有主资源的依赖资源集合
-			HashSet<string> allDependAsset = new HashSet<string>();
-			foreach (var collectAssetInfo in allCollectAssetInfos)
-			{
-				var collectorType = collectAssetInfo.CollectorType;
-				if (collectorType == ECollectorType.MainAssetCollector || collectorType == ECollectorType.StaticAssetCollector)
-				{
-					foreach (var dependAsset in collectAssetInfo.DependAssets)
-					{
-						if (allDependAsset.Contains(dependAsset) == false)
-							allDependAsset.Add(dependAsset);
-					}
-				}
-			}
-
-			// 3. 找出所有零引用的依赖资源集合
-			List<CollectAssetInfo> removeList = new List<CollectAssetInfo>();
-			foreach (var collectAssetInfo in allCollectAssetInfos)
-			{
-				var collectorType = collectAssetInfo.CollectorType;
-				if (collectorType == ECollectorType.DependAssetCollector)
-				{
-					if (allDependAsset.Contains(collectAssetInfo.AssetPath) == false)
-						removeList.Add(collectAssetInfo);
-				}
-			}
-
-			// 4. 移除所有零引用的依赖资源
-			foreach (var removeValue in removeList)
-			{
-				BuildLogger.Log($"发现未被依赖的资源并自动移除 : {removeValue.AssetPath}");
-				allCollectAssetInfos.Remove(removeValue);
-			}
-		}
-
-		/// <summary>
-		/// 检测构建结果
-		/// </summary>
-		private void CheckBuildMapContent(BuildMapContext buildMapContext)
-		{
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				// 注意:原生文件资源包只能包含一个原生文件
-				bool isRawFile = bundleInfo.IsRawFile;
-				if (isRawFile)
-				{
-					if (bundleInfo.AllMainAssets.Count != 1)
-						throw new Exception($"The bundle does not support multiple raw asset : {bundleInfo.BundleName}");
-					continue;
-				}
-
-				// 注意:原生文件不能被其它资源文件依赖
-				foreach (var assetInfo in bundleInfo.AllMainAssets)
-				{
-					if (assetInfo.AllDependAssetInfos != null)
-					{
-						foreach (var dependAssetInfo in assetInfo.AllDependAssetInfos)
-						{
-							if (dependAssetInfo.IsRawAsset)
-								throw new Exception($"{assetInfo.AssetPath} can not depend raw asset : {dependAssetInfo.AssetPath}");
-						}
-					}
-				}
-			}
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskGetBuildMap.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: baee18c5c7b76584b90413bf20fdae9a
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 106
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskPrepare.cs

@@ -1,106 +0,0 @@
-using System;
-using System.IO;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("资源构建准备工作")]
-	public class TaskPrepare : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildParameters = buildParametersContext.Parameters;
-
-			// 检测构建参数合法性
-			if (buildParameters.BuildTarget == BuildTarget.NoTarget)
-				throw new Exception("请选择目标平台!");
-			if (string.IsNullOrEmpty(buildParameters.PackageName))
-				throw new Exception("包裹名称不能为空!");
-			if (string.IsNullOrEmpty(buildParameters.PackageVersion))
-				throw new Exception("包裹版本不能为空!");
-			if (string.IsNullOrEmpty(buildParameters.BuildOutputRoot))
-				throw new Exception("构建输出的根目录为空!");
-			if (string.IsNullOrEmpty(buildParameters.StreamingAssetsRoot))
-				throw new Exception("内置资源根目录为空!");
-
-			if (buildParameters.BuildPipeline == EBuildPipeline.ScriptableBuildPipeline)
-			{
-				if (buildParameters.SBPParameters == null)
-					throw new Exception($"{nameof(BuildParameters.SBPParameters)} is null !");
-
-				if (buildParameters.BuildMode == EBuildMode.DryRunBuild)
-					throw new Exception($"{nameof(EBuildPipeline.ScriptableBuildPipeline)} not support {nameof(EBuildMode.DryRunBuild)} build mode !");
-
-				if (buildParameters.BuildMode == EBuildMode.ForceRebuild)
-					throw new Exception($"{nameof(EBuildPipeline.ScriptableBuildPipeline)} not support {nameof(EBuildMode.ForceRebuild)} build mode !");
-			}
-
-			if (buildParameters.BuildMode != EBuildMode.SimulateBuild)
-			{
-#if UNITY_2021_3_OR_NEWER
-				if (buildParameters.BuildPipeline == EBuildPipeline.BuiltinBuildPipeline)
-				{
-					BuildLogger.Warning("推荐使用可编程构建管线(SBP)!");
-				}
-#endif
-
-				// 检测当前是否正在构建资源包
-				if (BuildPipeline.isBuildingPlayer)
-					throw new Exception("当前正在构建资源包,请结束后再试");
-
-				// 检测是否有未保存场景
-				if (EditorTools.HasDirtyScenes())
-					throw new Exception("检测到未保存的场景文件");
-
-				// 检测首包资源标签
-				if (buildParameters.CopyBuildinFileOption == ECopyBuildinFileOption.ClearAndCopyByTags
-					|| buildParameters.CopyBuildinFileOption == ECopyBuildinFileOption.OnlyCopyByTags)
-				{
-					if (string.IsNullOrEmpty(buildParameters.CopyBuildinFileTags))
-						throw new Exception("首包资源标签不能为空!");
-				}
-
-				// 检测共享资源打包规则
-				if (buildParameters.SharedPackRule == null)
-					throw new Exception("共享资源打包规则不能为空!");
-
-#if UNITY_WEBGL
-				if (buildParameters.EncryptionServices != null)
-				{
-					if (buildParameters.EncryptionServices.GetType() != typeof(EncryptionNone))
-					{
-						throw new Exception("WebGL平台不支持加密!");
-					}
-				}
-#endif
-
-				// 检测包裹输出目录是否存在
-				string packageOutputDirectory = buildParametersContext.GetPackageOutputDirectory();
-				if (Directory.Exists(packageOutputDirectory))
-					throw new Exception($"本次构建的补丁目录已经存在:{packageOutputDirectory}");
-
-				// 保存改动的资源
-				AssetDatabase.SaveAssets();
-			}
-
-			if (buildParameters.BuildMode == EBuildMode.ForceRebuild)
-			{
-				string packageRootDirectory = buildParametersContext.GetPackageRootDirectory();
-				if (EditorTools.DeleteDirectory(packageRootDirectory))
-				{
-					BuildLogger.Log($"删除包裹目录:{packageRootDirectory}");
-				}
-			}
-
-			// 如果输出目录不存在
-			string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
-			if (EditorTools.CreateDirectory(pipelineOutputDirectory))
-			{
-				BuildLogger.Log($"创建输出目录:{pipelineOutputDirectory}");
-			}
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskPrepare.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 0dee755cccd608d48b6581ec33c99b39
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 119
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskUpdateBundleInfo.cs

@@ -1,119 +0,0 @@
-using System;
-using System.IO;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("更新资源包信息")]
-	public class TaskUpdateBundleInfo : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-			string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
-			string packageOutputDirectory = buildParametersContext.GetPackageOutputDirectory();
-			int outputNameStyle = (int)buildParametersContext.Parameters.OutputNameStyle;
-
-			// 1.检测文件名长度
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				// NOTE:检测文件名长度不要超过260字符。
-				string fileName = bundleInfo.BundleName;
-				if (fileName.Length >= 260)
-					throw new Exception($"The output bundle name is too long {fileName.Length} chars : {fileName}");
-			}
-
-			// 2.更新构建输出的文件路径
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				if (bundleInfo.IsEncryptedFile)
-					bundleInfo.BundleInfo.BuildOutputFilePath = bundleInfo.EncryptedFilePath;
-				else
-					bundleInfo.BundleInfo.BuildOutputFilePath = $"{pipelineOutputDirectory}/{bundleInfo.BundleName}";
-			}
-
-			// 3.更新文件其它信息
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				string buildOutputFilePath = bundleInfo.BundleInfo.BuildOutputFilePath;
-				bundleInfo.BundleInfo.ContentHash = GetBundleContentHash(bundleInfo, context);
-				bundleInfo.BundleInfo.FileHash = GetBundleFileHash(buildOutputFilePath, buildParametersContext);
-				bundleInfo.BundleInfo.FileCRC = GetBundleFileCRC(buildOutputFilePath, buildParametersContext);
-				bundleInfo.BundleInfo.FileSize = GetBundleFileSize(buildOutputFilePath, buildParametersContext);
-			}
-
-			// 4.更新补丁包输出的文件路径
-			foreach (var bundleInfo in buildMapContext.Collection)
-			{
-				string fileExtension = ManifestTools.GetRemoteBundleFileExtension(bundleInfo.BundleName);
-				string fileName = ManifestTools.GetRemoteBundleFileName(outputNameStyle, bundleInfo.BundleName, fileExtension, bundleInfo.BundleInfo.FileHash);
-				bundleInfo.BundleInfo.PackageOutputFilePath = $"{packageOutputDirectory}/{fileName}";
-			}
-		}
-
-		private string GetBundleContentHash(BuildBundleInfo bundleInfo, BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var parameters = buildParametersContext.Parameters;
-			var buildMode = parameters.BuildMode;
-			if (buildMode == EBuildMode.DryRunBuild || buildMode == EBuildMode.SimulateBuild)
-				return "00000000000000000000000000000000"; //32位
-
-			if (bundleInfo.IsRawFile)
-			{
-				string filePath = bundleInfo.BundleInfo.BuildOutputFilePath;
-				return HashUtility.FileMD5(filePath);
-			}
-
-			if (parameters.BuildPipeline == EBuildPipeline.BuiltinBuildPipeline)
-			{
-				var buildResult = context.GetContextObject<TaskBuilding.BuildResultContext>();
-				var hash = buildResult.UnityManifest.GetAssetBundleHash(bundleInfo.BundleName);
-				if (hash.isValid)
-					return hash.ToString();
-				else
-					throw new Exception($"Not found bundle in build result : {bundleInfo.BundleName}");
-			}
-			else if (parameters.BuildPipeline == EBuildPipeline.ScriptableBuildPipeline)
-			{
-				// 注意:当资源包的依赖列表发生变化的时候,ContentHash也会发生变化!
-				var buildResult = context.GetContextObject<TaskBuilding_SBP.BuildResultContext>();
-				if (buildResult.Results.BundleInfos.TryGetValue(bundleInfo.BundleName, out var value))
-					return value.Hash.ToString();
-				else
-					throw new Exception($"Not found bundle in build result : {bundleInfo.BundleName}");
-			}
-			else
-			{
-				throw new System.NotImplementedException();
-			}
-		}
-		private string GetBundleFileHash(string filePath, BuildParametersContext buildParametersContext)
-		{
-			var buildMode = buildParametersContext.Parameters.BuildMode;
-			if (buildMode == EBuildMode.DryRunBuild || buildMode == EBuildMode.SimulateBuild)
-				return "00000000000000000000000000000000"; //32位
-			else
-				return HashUtility.FileMD5(filePath);
-		}
-		private string GetBundleFileCRC(string filePath, BuildParametersContext buildParametersContext)
-		{
-			var buildMode = buildParametersContext.Parameters.BuildMode;
-			if (buildMode == EBuildMode.DryRunBuild || buildMode == EBuildMode.SimulateBuild)
-				return "00000000"; //8位
-			else
-				return HashUtility.FileCRC32(filePath);
-		}
-		private long GetBundleFileSize(string filePath, BuildParametersContext buildParametersContext)
-		{
-			var buildMode = buildParametersContext.Parameters.BuildMode;
-			if (buildMode == EBuildMode.DryRunBuild || buildMode == EBuildMode.SimulateBuild)
-				return 0;
-			else
-				return FileUtility.GetFileSize(filePath);
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskUpdateBundleInfo.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 4882f54fbf0bcb04680fb581deae4889
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 137
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult.cs

@@ -1,137 +0,0 @@
-using System;
-using System.Linq;
-using System.IO;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-using UnityEngine;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("验证构建结果")]
-	public class TaskVerifyBuildResult : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-
-			// 模拟构建模式下跳过验证
-			if (buildParametersContext.Parameters.BuildMode == EBuildMode.SimulateBuild)
-				return;
-
-			// 验证构建结果
-			if (buildParametersContext.Parameters.VerifyBuildingResult)
-			{
-				var buildResultContext = context.GetContextObject<TaskBuilding.BuildResultContext>();
-				VerifyingBuildingResult(context, buildResultContext.UnityManifest);
-			}
-		}
-
-		/// <summary>
-		/// 验证构建结果
-		/// </summary>
-		private void VerifyingBuildingResult(BuildContext context, AssetBundleManifest unityManifest)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-			string[] unityCreateBundles = unityManifest.GetAllAssetBundles();
-
-			// 1. 过滤掉原生Bundle
-			string[] mapBundles = buildMapContext.Collection.Where(t => t.IsRawFile == false).Select(t => t.BundleName).ToArray();
-
-			// 2. 验证Bundle
-			List<string> exceptBundleList1 = unityCreateBundles.Except(mapBundles).ToList();
-			if (exceptBundleList1.Count > 0)
-			{
-				foreach (var exceptBundle in exceptBundleList1)
-				{
-					BuildLogger.Warning($"差异资源包: {exceptBundle}");
-				}
-				throw new System.Exception("存在差异资源包!请查看警告信息!");
-			}
-
-			// 3. 验证Bundle
-			List<string> exceptBundleList2 = mapBundles.Except(unityCreateBundles).ToList();
-			if (exceptBundleList2.Count > 0)
-			{
-				foreach (var exceptBundle in exceptBundleList2)
-				{
-					BuildLogger.Warning($"差异资源包: {exceptBundle}");
-				}
-				throw new System.Exception("存在差异资源包!请查看警告信息!");
-			}
-
-			// 4. 验证Asset
-			/*
-			bool isPass = true;
-			var buildMode = buildParametersContext.Parameters.BuildMode;
-			if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
-			{
-				int progressValue = 0;
-				string pipelineOutputDirectory = buildParametersContext.GetPipelineOutputDirectory();
-				foreach (var buildedBundle in buildedBundles)
-				{
-					string filePath = $"{pipelineOutputDirectory}/{buildedBundle}";
-					string[] buildedAssetPaths = GetAssetBundleAllAssets(filePath);
-					string[] mapAssetPaths = buildMapContext.GetBuildinAssetPaths(buildedBundle);
-					if (mapAssetPaths.Length != buildedAssetPaths.Length)
-					{
-						BuildLogger.Warning($"构建的Bundle文件内的资源对象数量和预期不匹配 : {buildedBundle}");
-						var exceptAssetList1 = mapAssetPaths.Except(buildedAssetPaths).ToList();
-						foreach (var excpetAsset in exceptAssetList1)
-						{
-							BuildLogger.Warning($"构建失败的资源对象路径为 : {excpetAsset}");
-						}
-						var exceptAssetList2 = buildedAssetPaths.Except(mapAssetPaths).ToList();
-						foreach (var excpetAsset in exceptAssetList2)
-						{
-							BuildLogger.Warning($"构建失败的资源对象路径为 : {excpetAsset}");
-						}
-						isPass = false;
-						continue;
-					}
-					EditorTools.DisplayProgressBar("验证构建结果", ++progressValue, buildedBundles.Length);
-				}
-				EditorTools.ClearProgressBar();
-
-				if (isPass == false)
-				{
-					throw new Exception("构建结果验证没有通过,请参考警告日志!");
-				}
-			}
-			*/
-
-			BuildLogger.Log("构建结果验证成功!");
-		}
-
-		/// <summary>
-		/// 解析.manifest文件并获取资源列表
-		/// </summary>
-		private string[] GetAssetBundleAllAssets(string filePath)
-		{
-			string manifestFilePath = $"{filePath}.manifest";
-			List<string> assetLines = new List<string>();
-			using (StreamReader reader = File.OpenText(manifestFilePath))
-			{
-				string content;
-				bool findTarget = false;
-				while (null != (content = reader.ReadLine()))
-				{
-					if (content.StartsWith("Dependencies:"))
-						break;
-					if (findTarget == false && content.StartsWith("Assets:"))
-						findTarget = true;
-					if (findTarget)
-					{
-						if (content.StartsWith("- "))
-						{
-							string assetPath = content.TrimStart("- ".ToCharArray());
-							assetLines.Add(assetPath);
-						}
-					}
-				}
-			}
-			return assetLines.ToArray();
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: b883ac0c3c25e8143847a9326e2961cf
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 68
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult_SBP.cs

@@ -1,68 +0,0 @@
-using System;
-using System.Linq;
-using System.IO;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEditor;
-using UnityEngine;
-using UnityEditor.Build.Pipeline.Interfaces;
-
-namespace YooAsset.Editor
-{
-	[TaskAttribute("验证构建结果")]
-	public class TaskVerifyBuildResult_SBP : IBuildTask
-	{
-		void IBuildTask.Run(BuildContext context)
-		{
-			var buildParametersContext = context.GetContextObject<BuildParametersContext>();
-
-			// 模拟构建模式下跳过验证
-			if (buildParametersContext.Parameters.BuildMode == EBuildMode.SimulateBuild)
-				return;
-
-			// 验证构建结果
-			if (buildParametersContext.Parameters.VerifyBuildingResult)
-			{
-				var buildResultContext = context.GetContextObject<TaskBuilding_SBP.BuildResultContext>();
-				VerifyingBuildingResult(context, buildResultContext.Results);
-			}
-		}
-
-		/// <summary>
-		/// 验证构建结果
-		/// </summary>
-		private void VerifyingBuildingResult(BuildContext context, IBundleBuildResults buildResults)
-		{
-			var buildParameters = context.GetContextObject<BuildParametersContext>();
-			var buildMapContext = context.GetContextObject<BuildMapContext>();
-			List<string> unityCreateBundles = buildResults.BundleInfos.Keys.ToList();
-
-			// 1. 过滤掉原生Bundle
-			List<string> expectBundles = buildMapContext.Collection.Where(t => t.IsRawFile == false).Select(t => t.BundleName).ToList();
-
-			// 2. 验证Bundle
-			List<string> exceptBundleList1 = unityCreateBundles.Except(expectBundles).ToList();
-			if (exceptBundleList1.Count > 0)
-			{
-				foreach (var exceptBundle in exceptBundleList1)
-				{
-					BuildLogger.Warning($"差异资源包: {exceptBundle}");
-				}
-				throw new System.Exception("存在差异资源包!请查看警告信息!");
-			}
-
-			// 3. 验证Bundle
-			List<string> exceptBundleList2 = expectBundles.Except(unityCreateBundles).ToList();
-			if (exceptBundleList2.Count > 0)
-			{
-				foreach (var exceptBundle in exceptBundleList2)
-				{
-					BuildLogger.Warning($"差异资源包: {exceptBundle}");
-				}
-				throw new System.Exception("存在差异资源包!请查看警告信息!");
-			}
-
-			BuildLogger.Log("构建结果验证成功!");
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/BuildTasks/TaskVerifyBuildResult_SBP.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 16aa7c2c37209a043b4f33d7854047c6
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/DefaultEncryption.cs

@@ -1,11 +0,0 @@
-
-namespace YooAsset.Editor
-{
-	public class EncryptionNone : IEncryptionServices
-	{
-		public EncryptResult Encrypt(EncryptFileInfo fileInfo)
-		{
-			throw new System.NotImplementedException();
-		}
-	}
-}

+ 0 - 11
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/DefaultEncryption.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 46b8b200b841799498896403d9d427c2
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 29
Unity/Packages/YooAsset/Editor/AssetBundleBuilder/EBuildMode.cs

@@ -1,29 +0,0 @@
-
-namespace YooAsset.Editor
-{
-	/// <summary>
-	/// 资源包流水线的构建模式
-	/// </summary>
-	public enum EBuildMode
-	{
-		/// <summary>
-		/// 强制重建模式
-		/// </summary>
-		ForceRebuild,
-
-		/// <summary>
-		/// 增量构建模式
-		/// </summary>
-		IncrementalBuild,
-
-		/// <summary>
-		/// 演练构建模式
-		/// </summary>
-		DryRunBuild,
-
-		/// <summary>
-		/// 模拟构建模式
-		/// </summary>
-		SimulateBuild,
-	}
-}

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff