备份CatanBuilding瘦身独立工程
This commit is contained in:
8
LocalPackages/AddressablesHelper/Assets.meta
Normal file
8
LocalPackages/AddressablesHelper/Assets.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 04cd50d4709d67d46ae02a5c0d18c3cc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
76
LocalPackages/AddressablesHelper/Assets/Local.asset
Normal file
76
LocalPackages/AddressablesHelper/Assets/Local.asset
Normal file
@@ -0,0 +1,76 @@
|
||||
%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: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3}
|
||||
m_Name: Local
|
||||
m_EditorClassIdentifier:
|
||||
m_SchemaObjects:
|
||||
- {fileID: 2134600949886003966}
|
||||
- {fileID: 5450088179071591902}
|
||||
m_Description:
|
||||
m_Settings: {fileID: 11400000, guid: 2b420ef1fd7d56b4f86537c540c40803, type: 2}
|
||||
--- !u!114 &2134600949886003966
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: e5d17a21594effb4e9591490b009e7aa, type: 3}
|
||||
m_Name: BundledAssetGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_InternalBundleIdMode: 1
|
||||
m_Compression: 1
|
||||
m_IncludeAddressInCatalog: 1
|
||||
m_IncludeGUIDInCatalog: 1
|
||||
m_IncludeLabelsInCatalog: 1
|
||||
m_InternalIdNamingMode: 0
|
||||
m_CacheClearBehavior: 0
|
||||
m_IncludeInBuild: 1
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
|
||||
m_ForceUniqueProvider: 0
|
||||
m_UseAssetBundleCache: 1
|
||||
m_UseAssetBundleCrc: 1
|
||||
m_UseAssetBundleCrcForCachedBundles: 1
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_Timeout: 0
|
||||
m_ChunkedTransfer: 0
|
||||
m_RedirectLimit: -1
|
||||
m_RetryCount: 3
|
||||
m_BuildPath:
|
||||
m_Id: 0327ded4381668844bc353d399df10b1
|
||||
m_LoadPath:
|
||||
m_Id: d3edbf09e52e321458f036629aea31aa
|
||||
m_BundleMode: 1
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
|
||||
m_BundleNaming: 0
|
||||
m_AssetLoadMode: 0
|
||||
--- !u!114 &5450088179071591902
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
|
||||
m_Name: ContentUpdateGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_StaticContent: 1
|
||||
8
LocalPackages/AddressablesHelper/Assets/Local.asset.meta
Normal file
8
LocalPackages/AddressablesHelper/Assets/Local.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c6c3b7b5de17d944b1acc2c37cb1ace
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
76
LocalPackages/AddressablesHelper/Assets/LocalOneBundle.asset
Normal file
76
LocalPackages/AddressablesHelper/Assets/LocalOneBundle.asset
Normal file
@@ -0,0 +1,76 @@
|
||||
%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: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3}
|
||||
m_Name: LocalOneBundle
|
||||
m_EditorClassIdentifier:
|
||||
m_SchemaObjects:
|
||||
- {fileID: 2134600949886003966}
|
||||
- {fileID: 5450088179071591902}
|
||||
m_Description:
|
||||
m_Settings: {fileID: 11400000, guid: 2b420ef1fd7d56b4f86537c540c40803, type: 2}
|
||||
--- !u!114 &2134600949886003966
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: e5d17a21594effb4e9591490b009e7aa, type: 3}
|
||||
m_Name: BundledAssetGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_InternalBundleIdMode: 1
|
||||
m_Compression: 1
|
||||
m_IncludeAddressInCatalog: 1
|
||||
m_IncludeGUIDInCatalog: 1
|
||||
m_IncludeLabelsInCatalog: 1
|
||||
m_InternalIdNamingMode: 0
|
||||
m_CacheClearBehavior: 0
|
||||
m_IncludeInBuild: 1
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
|
||||
m_ForceUniqueProvider: 0
|
||||
m_UseAssetBundleCache: 1
|
||||
m_UseAssetBundleCrc: 1
|
||||
m_UseAssetBundleCrcForCachedBundles: 1
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_Timeout: 0
|
||||
m_ChunkedTransfer: 0
|
||||
m_RedirectLimit: -1
|
||||
m_RetryCount: 3
|
||||
m_BuildPath:
|
||||
m_Id: 0327ded4381668844bc353d399df10b1
|
||||
m_LoadPath:
|
||||
m_Id: d3edbf09e52e321458f036629aea31aa
|
||||
m_BundleMode: 0
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
|
||||
m_BundleNaming: 0
|
||||
m_AssetLoadMode: 0
|
||||
--- !u!114 &5450088179071591902
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
|
||||
m_Name: ContentUpdateGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_StaticContent: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f35d7d498ee47f84cba264039cf1cfbe
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2495768021662990981
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: e5d17a21594effb4e9591490b009e7aa, type: 3}
|
||||
m_Name: BundledAssetGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_InternalBundleIdMode: 1
|
||||
m_Compression: 1
|
||||
m_IncludeAddressInCatalog: 1
|
||||
m_IncludeGUIDInCatalog: 1
|
||||
m_IncludeLabelsInCatalog: 1
|
||||
m_InternalIdNamingMode: 0
|
||||
m_CacheClearBehavior: 0
|
||||
m_IncludeInBuild: 1
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
|
||||
m_ForceUniqueProvider: 0
|
||||
m_UseAssetBundleCache: 1
|
||||
m_UseAssetBundleCrc: 1
|
||||
m_UseAssetBundleCrcForCachedBundles: 1
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_Timeout: 0
|
||||
m_ChunkedTransfer: 0
|
||||
m_RedirectLimit: -1
|
||||
m_RetryCount: 3
|
||||
m_BuildPath:
|
||||
m_Id: ce35249f4cedb0c4ea05a2b4547030d8
|
||||
m_LoadPath:
|
||||
m_Id: a0175be1cdc22bb48a6cec36df70320c
|
||||
m_BundleMode: 1
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
|
||||
m_BundleNaming: 0
|
||||
m_AssetLoadMode: 0
|
||||
--- !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: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3}
|
||||
m_Name: RemoteSeparately
|
||||
m_EditorClassIdentifier:
|
||||
m_SchemaObjects:
|
||||
- {fileID: -2495768021662990981}
|
||||
- {fileID: 1499562304012160075}
|
||||
m_Description:
|
||||
m_Settings: {fileID: 11400000, guid: 2b420ef1fd7d56b4f86537c540c40803, type: 2}
|
||||
--- !u!114 &1499562304012160075
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
|
||||
m_Name: ContentUpdateGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_StaticContent: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d1116100ceb7a9246a9dfdbc4ab6c5ec
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
76
LocalPackages/AddressablesHelper/Assets/RemoteTogether.asset
Normal file
76
LocalPackages/AddressablesHelper/Assets/RemoteTogether.asset
Normal file
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2495768021662990981
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: e5d17a21594effb4e9591490b009e7aa, type: 3}
|
||||
m_Name: BundledAssetGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_InternalBundleIdMode: 1
|
||||
m_Compression: 1
|
||||
m_IncludeAddressInCatalog: 1
|
||||
m_IncludeGUIDInCatalog: 1
|
||||
m_IncludeLabelsInCatalog: 1
|
||||
m_InternalIdNamingMode: 0
|
||||
m_CacheClearBehavior: 0
|
||||
m_IncludeInBuild: 1
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
|
||||
m_ForceUniqueProvider: 0
|
||||
m_UseAssetBundleCache: 1
|
||||
m_UseAssetBundleCrc: 1
|
||||
m_UseAssetBundleCrcForCachedBundles: 1
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_Timeout: 0
|
||||
m_ChunkedTransfer: 0
|
||||
m_RedirectLimit: -1
|
||||
m_RetryCount: 3
|
||||
m_BuildPath:
|
||||
m_Id: ce35249f4cedb0c4ea05a2b4547030d8
|
||||
m_LoadPath:
|
||||
m_Id: a0175be1cdc22bb48a6cec36df70320c
|
||||
m_BundleMode: 0
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
|
||||
m_BundleNaming: 0
|
||||
m_AssetLoadMode: 0
|
||||
--- !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: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3}
|
||||
m_Name: RemoteTogether
|
||||
m_EditorClassIdentifier:
|
||||
m_SchemaObjects:
|
||||
- {fileID: -2495768021662990981}
|
||||
- {fileID: 1499562304012160075}
|
||||
m_Description:
|
||||
m_Settings: {fileID: 11400000, guid: 2b420ef1fd7d56b4f86537c540c40803, type: 2}
|
||||
--- !u!114 &1499562304012160075
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
|
||||
m_Name: ContentUpdateGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_StaticContent: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 32e60196e37ee144896230d6223a6223
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2495768021662990981
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: e5d17a21594effb4e9591490b009e7aa, type: 3}
|
||||
m_Name: BundledAssetGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_InternalBundleIdMode: 1
|
||||
m_Compression: 1
|
||||
m_IncludeAddressInCatalog: 1
|
||||
m_IncludeGUIDInCatalog: 1
|
||||
m_IncludeLabelsInCatalog: 1
|
||||
m_InternalIdNamingMode: 0
|
||||
m_CacheClearBehavior: 0
|
||||
m_IncludeInBuild: 1
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
|
||||
m_ForceUniqueProvider: 0
|
||||
m_UseAssetBundleCache: 1
|
||||
m_UseAssetBundleCrc: 1
|
||||
m_UseAssetBundleCrcForCachedBundles: 1
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_Timeout: 0
|
||||
m_ChunkedTransfer: 0
|
||||
m_RedirectLimit: -1
|
||||
m_RetryCount: 3
|
||||
m_BuildPath:
|
||||
m_Id: ce35249f4cedb0c4ea05a2b4547030d8
|
||||
m_LoadPath:
|
||||
m_Id: a0175be1cdc22bb48a6cec36df70320c
|
||||
m_BundleMode: 2
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
|
||||
m_BundleNaming: 0
|
||||
m_AssetLoadMode: 0
|
||||
--- !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: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3}
|
||||
m_Name: RemoteTogetherByLabel
|
||||
m_EditorClassIdentifier:
|
||||
m_SchemaObjects:
|
||||
- {fileID: -2495768021662990981}
|
||||
- {fileID: 1499562304012160075}
|
||||
m_Description:
|
||||
m_Settings: {fileID: 11400000, guid: 2b420ef1fd7d56b4f86537c540c40803, type: 2}
|
||||
--- !u!114 &1499562304012160075
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
|
||||
m_Name: ContentUpdateGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_StaticContent: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4de1b4178aaf03b47bfed64c7b961b91
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
LocalPackages/AddressablesHelper/Editor.meta
Normal file
8
LocalPackages/AddressablesHelper/Editor.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f305f6f93f647249a13dd0f537996b7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,729 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEditor.AddressableAssets;
|
||||
using UnityEditor.AddressableAssets.Settings;
|
||||
using UnityEngine;
|
||||
using inspector.ext;
|
||||
using UnityEditor.AddressableAssets.Settings.GroupSchemas;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace addressables.helper
|
||||
{
|
||||
[Serializable]
|
||||
public class GroupDefine
|
||||
{
|
||||
public string name;
|
||||
[inspector.ext.Folder]
|
||||
public string folder;
|
||||
public string folderPath => folder.ToFolderInfo().path;
|
||||
public AddressableAssetGroupTemplate template;
|
||||
public AssetLabelReference[] labels;
|
||||
|
||||
public void CopyToStreamingAssets()
|
||||
{
|
||||
var addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
var group = addrSettings.FindGroup(name);
|
||||
var buildPath = group.Settings.RemoteCatalogBuildPath;
|
||||
var schema = group.GetSchema<BundledAssetGroupSchema>();
|
||||
if (schema != null)
|
||||
{
|
||||
if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackSeparately)
|
||||
{
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
if (string.IsNullOrEmpty(bundleName))
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address}");
|
||||
continue;
|
||||
}
|
||||
var bunldes = Directory.GetFiles(buildPath.GetValue(addrSettings), bundleName);
|
||||
|
||||
if (bunldes.Length != 1)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {bunldes.Length} {bundleName}");
|
||||
continue;
|
||||
}
|
||||
|
||||
//copy bundle
|
||||
var dest = Path.Combine(Application.streamingAssetsPath, Path.GetFileName(bunldes[0]));
|
||||
File.Copy(bunldes[0], dest, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackTogether)
|
||||
{
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
if (string.IsNullOrEmpty(bundleName))
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address}");
|
||||
continue;
|
||||
}
|
||||
var bunldes = Directory.GetFiles(buildPath.GetValue(addrSettings), bundleName);
|
||||
|
||||
if (bunldes.Length != 1)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {bunldes.Length} {bundleName}");
|
||||
continue;
|
||||
}
|
||||
|
||||
//copy bundle
|
||||
var dest = Path.Combine(Application.streamingAssetsPath, Path.GetFileName(bunldes[0]));
|
||||
File.Copy(bunldes[0], dest, true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackTogetherByLabel)
|
||||
{
|
||||
List<string> names = new List<string>();
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
if (string.IsNullOrEmpty(bundleName))
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address}");
|
||||
continue;
|
||||
}
|
||||
if (names.Contains(bundleName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
var bunldes = Directory.GetFiles(buildPath.GetValue(addrSettings), bundleName);
|
||||
|
||||
if (bunldes.Length != 1)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {bunldes.Length} {bundleName}");
|
||||
continue;
|
||||
}
|
||||
names.Add(bundleName);
|
||||
//copy bundle
|
||||
var dest = Path.Combine(Application.streamingAssetsPath, Path.GetFileName(bunldes[0]));
|
||||
File.Copy(bunldes[0], dest, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class GroupFolderDefine
|
||||
{
|
||||
public string name;
|
||||
[inspector.ext.Folder]
|
||||
public string folder;
|
||||
public string folderPath => folder.ToFolderInfo().path;
|
||||
public AddressableAssetGroupTemplate template;
|
||||
public AssetLabelReference[] labels;
|
||||
}
|
||||
|
||||
public class AddressableHelperSetting : ScriptableObject
|
||||
{
|
||||
public string[] MamualGroupNames;
|
||||
public string[] MamualGroupNamePrefixs;
|
||||
public GroupDefine[] GroupDefines;
|
||||
public GroupFolderDefine[] GroupFolderDefines;
|
||||
}
|
||||
|
||||
public class AddressableHelper
|
||||
{
|
||||
private const string helperSettingPath = "Assets/Settings/AddressableHelperSetting.asset";
|
||||
public static bool IsSettingExists() => File.Exists(helperSettingPath);
|
||||
|
||||
[MenuItem("Window/Asset Management/Helper/Create Setting", true)]
|
||||
static bool ValidateCreateSetting() => !IsSettingExists();
|
||||
|
||||
[MenuItem("Window/Asset Management/Helper/Create Setting")]
|
||||
static void CreateSetting()
|
||||
{
|
||||
var instance = ScriptableObject.CreateInstance<AddressableHelperSetting>();
|
||||
AssetDatabase.CreateAsset(instance, helperSettingPath);
|
||||
}
|
||||
|
||||
//[MenuItem("Window/Asset Management/Helper/Sync Groups", true)]
|
||||
//static bool ValidateSyncGroups() => IsSettingExists();
|
||||
|
||||
//[MenuItem("Window/Asset Management/Helper/Sync Groups &#F")]
|
||||
public static void SyncGroups()
|
||||
{
|
||||
var helperSetting = AssetDatabase.LoadAssetAtPath<AddressableHelperSetting>(helperSettingPath);
|
||||
var defines = helperSetting.GroupDefines;
|
||||
var addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
|
||||
var manualGroupNames = helperSetting.MamualGroupNames;
|
||||
var MamualGroupNamePrefixs = helperSetting.MamualGroupNamePrefixs;
|
||||
// Debug.Log($"[AddressableHelper] {addrSettings.groups.Select(x => x.Name)}");
|
||||
var dbt = addrSettings.groups;
|
||||
foreach (var x in dbt)
|
||||
{
|
||||
Debug.Log(x);
|
||||
}
|
||||
|
||||
// Debug.Log($"[AddressableHelper] {addrSettings.groups.Select(x => x.Name).ToList()}");
|
||||
var existsGroupNames = addrSettings.groups.Select(x => x.Name).ToList();
|
||||
var newGroupNames = helperSetting.GroupDefines.Select(x => x.name)
|
||||
.Concat(helperSetting.GroupFolderDefines.Select(x => x.name))
|
||||
.ToList();
|
||||
|
||||
var allGroupNames = manualGroupNames.Concat(newGroupNames).ToList();
|
||||
|
||||
for(int i = 0; i < MamualGroupNamePrefixs.Length;i++)
|
||||
{
|
||||
var prefix = MamualGroupNamePrefixs[i];
|
||||
if (string.IsNullOrEmpty(prefix))
|
||||
continue;
|
||||
var manualGroups = existsGroupNames.Where(x => x.StartsWith(prefix)).ToList();
|
||||
if (manualGroups.Count > 0)
|
||||
{
|
||||
Debug.Log($"[AddressableHelper] add manual group {prefix}");
|
||||
allGroupNames.AddRange(manualGroups);
|
||||
}
|
||||
}
|
||||
|
||||
// remove groups not defined in helper setting
|
||||
for (int i = existsGroupNames.Count - 1; i >= 0; i--)
|
||||
{
|
||||
|
||||
var group = existsGroupNames[i];
|
||||
|
||||
if (!allGroupNames.Contains(group))
|
||||
{
|
||||
Debug.Log($"[AddressableHelper] remove group {group}");
|
||||
addrSettings.RemoveGroup(addrSettings.FindGroup(group));
|
||||
existsGroupNames.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var groupDefine in defines)
|
||||
{
|
||||
var groupName = groupDefine.name;
|
||||
var group = addrSettings.FindGroup(groupName);
|
||||
|
||||
if (null == group)
|
||||
{
|
||||
Debug.Log($"[AddressableHelper] create group {groupDefine.name}");
|
||||
group = CreateGroup(groupDefine, addrSettings);
|
||||
groupDefine.template.ApplyToAddressableAssetGroup(group);
|
||||
}
|
||||
else
|
||||
{
|
||||
var entries = group.entries.ToList();
|
||||
Debug.Log($"[AddressableHelper] clean group {groupDefine.name} {entries.Count}");
|
||||
foreach (var entry in entries)
|
||||
{
|
||||
group.RemoveAssetEntry(entry);
|
||||
}
|
||||
}
|
||||
Debug.Log($"[AddressableHelper] sync group {groupDefine.name}");
|
||||
SyncEntries(groupDefine, group, addrSettings);
|
||||
|
||||
EditorUtility.SetDirty(group);
|
||||
}
|
||||
|
||||
var folderDefines = helperSetting.GroupFolderDefines;
|
||||
foreach (var folderDefine in folderDefines)
|
||||
{
|
||||
var groupName = folderDefine.name;
|
||||
var group = addrSettings.FindGroup(groupName);
|
||||
|
||||
if (null == group)
|
||||
{
|
||||
Debug.Log($"[AddressableHelper] create group {folderDefine.name}");
|
||||
group = CreateGroupByFolder(groupName, folderDefine, addrSettings);
|
||||
folderDefine.template.ApplyToAddressableAssetGroup(group);
|
||||
}
|
||||
else
|
||||
{
|
||||
var entries = group.entries.ToList();
|
||||
Debug.Log($"[AddressableHelper] clean group {folderDefine.name} {entries.Count}");
|
||||
foreach (var entry in entries)
|
||||
{
|
||||
group.RemoveAssetEntry(entry);
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"[AddressableHelper] sync group {folderDefine.name}");
|
||||
SyncEntriesByFolder(folderDefine, group, addrSettings);
|
||||
EditorUtility.SetDirty(group);
|
||||
}
|
||||
|
||||
EditorUtility.SetDirty(addrSettings);
|
||||
AssetDatabase.SaveAssets();
|
||||
}
|
||||
|
||||
private static AddressableAssetGroup CreateGroupByFolder(string groupName, GroupFolderDefine groupDefine, AddressableAssetSettings addrSettings)
|
||||
{
|
||||
var template = groupDefine.template;
|
||||
var group = addrSettings.CreateGroup(groupName, false, false, true, null, template.GetTypes());
|
||||
return group;
|
||||
}
|
||||
|
||||
private static void SyncEntriesByFolder(GroupFolderDefine groupDefine, AddressableAssetGroup group, AddressableAssetSettings addrSettings)
|
||||
{
|
||||
var folder = new string[] { groupDefine.folderPath };
|
||||
|
||||
//获取文件夹下的所有文件夹
|
||||
var assetsGUIDs = AssetDatabase.FindAssets("", folder);
|
||||
var assetPaths = assetsGUIDs.Select(_ => AssetDatabase.GUIDToAssetPath(_)).ToArray();
|
||||
var count = assetsGUIDs.Length;
|
||||
Regex regexA = new Regex(groupDefine.folderPath + "/(.*?)/");
|
||||
Regex regexB = new Regex(".*?/([^/]+)$");
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
var guid = assetsGUIDs[i];
|
||||
var entry = group.GetAssetEntry(guid);
|
||||
string address = Path.GetFileNameWithoutExtension(assetPaths[i]);
|
||||
string folderName = Path.GetFileName(assetPaths[i]);
|
||||
if (folderName.Contains("."))
|
||||
{
|
||||
if (entry == null || entry.address != address)
|
||||
{
|
||||
entry = addrSettings.CreateOrMoveEntry(guid, group);
|
||||
entry.address = address;
|
||||
//获取文件所在一级目录
|
||||
string directoryPath = assetPaths[i];
|
||||
//int startIndex = 1 + directoryPath.IndexOf(groupDefine.folderPath) + groupDefine.folderPath.Length;
|
||||
//int endIndex = directoryPath.IndexOf("/", startIndex);
|
||||
//directoryPath = directoryPath.Substring(startIndex, endIndex - startIndex);
|
||||
|
||||
//directoryPath = assetPaths[i];
|
||||
Match match = regexA.Match(directoryPath);
|
||||
if (match.Groups.Count > 1)
|
||||
{
|
||||
directoryPath = match.Groups[1].Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
match = regexB.Match(groupDefine.folderPath);
|
||||
directoryPath = match.Groups[1].Value;
|
||||
}
|
||||
|
||||
entry.SetLabel(directoryPath, true, true);
|
||||
for (int j = 0; j < groupDefine.labels.Length; j++)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(groupDefine.labels[j].labelString))
|
||||
{
|
||||
entry.SetLabel(groupDefine.labels[j].labelString, true);
|
||||
}
|
||||
}
|
||||
EditorUtility.SetDirty(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void SyncEntries(GroupDefine groupDefine, AddressableAssetGroup group, AddressableAssetSettings addrSettings)
|
||||
{
|
||||
var folder = new string[] { groupDefine.folderPath };
|
||||
var assetsGUIDs = AssetDatabase.FindAssets("", folder);
|
||||
var assetPaths = assetsGUIDs.Select(_ => AssetDatabase.GUIDToAssetPath(_)).ToArray();
|
||||
var count = assetsGUIDs.Length;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
if (Directory.Exists(assetPaths[i]))
|
||||
continue;
|
||||
var guid = assetsGUIDs[i];
|
||||
var entry = group.GetAssetEntry(guid);
|
||||
string address = Path.GetFileNameWithoutExtension(assetPaths[i]);
|
||||
|
||||
if (entry == null || entry.address != address)
|
||||
{
|
||||
entry = addrSettings.CreateOrMoveEntry(guid, group);
|
||||
entry.address = address;
|
||||
for (int j = 0; j < groupDefine.labels.Length; j++)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(groupDefine.labels[j].labelString))
|
||||
{
|
||||
entry.SetLabel(groupDefine.labels[j].labelString, true);
|
||||
}
|
||||
}
|
||||
EditorUtility.SetDirty(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static AddressableAssetGroup CreateGroup(GroupDefine groupDefine, AddressableAssetSettings addrSettings)
|
||||
{
|
||||
var template = groupDefine.template;
|
||||
var group = addrSettings.CreateGroup(groupDefine.name, false, false, true, null, template.GetTypes());
|
||||
return group;
|
||||
}
|
||||
|
||||
|
||||
[MenuItem("Window/Asset Management/Helper/Clean StreamingAssets")]
|
||||
public static void CleanStreamingAssets()
|
||||
{
|
||||
// delete all file with ext .bundle in StreamingAssets fold
|
||||
string streamingAssetsPath = Application.streamingAssetsPath;
|
||||
string[] bundleFiles = Directory.GetFiles(streamingAssetsPath, "*.bundle");
|
||||
string[] bundleMetaFiles = Directory.GetFiles(streamingAssetsPath, "*.bundle.meta");
|
||||
|
||||
foreach (string bundleFile in bundleFiles)
|
||||
{
|
||||
File.Delete(bundleFile);
|
||||
}
|
||||
|
||||
foreach (string metaFile in bundleMetaFiles)
|
||||
{
|
||||
File.Delete(metaFile);
|
||||
}
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
[MenuItem("Window/Asset Management/Helper/Copy To StreamingAssets")]
|
||||
public static void CopyToStreamingAssets()
|
||||
{
|
||||
//load helper setting
|
||||
//var helperSetting = AssetDatabase.LoadAssetAtPath<AddressableHelperSetting>(helperSettingPath);
|
||||
//foreach (var groupDefine in helperSetting.GroupDefines)
|
||||
//{
|
||||
// groupDefine.CopyToStreamingAssets();
|
||||
//}
|
||||
AddressableAssetSettings addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
var groups = addrSettings.groups;
|
||||
foreach (var group in groups)
|
||||
{
|
||||
if (group.Settings.BuildRemoteCatalog)
|
||||
{
|
||||
CopyToStreamingAssets(group, addrSettings);
|
||||
}
|
||||
}
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
private static void CopyToStreamingAssets(AddressableAssetGroup group, AddressableAssetSettings addrSettings)
|
||||
{
|
||||
var buildPath = group.Settings.RemoteCatalogBuildPath;
|
||||
var schema = group.GetSchema<BundledAssetGroupSchema>();
|
||||
if (schema != null)
|
||||
{
|
||||
if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackSeparately)
|
||||
{
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
if (string.IsNullOrEmpty(bundleName))
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address}");
|
||||
continue;
|
||||
}
|
||||
var bunldes = Directory.GetFiles(buildPath.GetValue(addrSettings), bundleName);
|
||||
|
||||
if (bunldes.Length != 1)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {bunldes.Length} {bundleName}");
|
||||
continue;
|
||||
}
|
||||
|
||||
//copy bundle
|
||||
var dest = Path.Combine(Application.streamingAssetsPath, Path.GetFileName(bunldes[0]));
|
||||
File.Copy(bunldes[0], dest, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackTogether)
|
||||
{
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
if (string.IsNullOrEmpty(bundleName))
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address}");
|
||||
continue;
|
||||
}
|
||||
var bunldes = Directory.GetFiles(buildPath.GetValue(addrSettings), bundleName);
|
||||
|
||||
if (bunldes.Length != 1)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {bunldes.Length} {bundleName}");
|
||||
continue;
|
||||
}
|
||||
|
||||
//copy bundle
|
||||
var dest = Path.Combine(Application.streamingAssetsPath, Path.GetFileName(bunldes[0]));
|
||||
File.Copy(bunldes[0], dest, true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackTogetherByLabel)
|
||||
{
|
||||
List<string> names = new List<string>();
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
if (string.IsNullOrEmpty(bundleName))
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address}");
|
||||
continue;
|
||||
}
|
||||
if (names.Contains(bundleName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
var bunldes = Directory.GetFiles(buildPath.GetValue(addrSettings), bundleName);
|
||||
|
||||
if (bunldes.Length != 1)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {bunldes.Length} {bundleName}");
|
||||
continue;
|
||||
}
|
||||
names.Add(bundleName);
|
||||
//copy bundle
|
||||
var dest = Path.Combine(Application.streamingAssetsPath, Path.GetFileName(bunldes[0]));
|
||||
File.Copy(bunldes[0], dest, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static HashSet<string> GetPackFileNames()
|
||||
{
|
||||
var names = new HashSet<string>();
|
||||
AddressableAssetSettings addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
var groups = addrSettings.groups;
|
||||
foreach (var group in groups)
|
||||
{
|
||||
if (group.Settings.BuildRemoteCatalog)
|
||||
{
|
||||
GetPackFileNames(group, addrSettings, names);
|
||||
}
|
||||
}
|
||||
return names;
|
||||
}
|
||||
|
||||
private static void GetPackFileNames(AddressableAssetGroup group, AddressableAssetSettings addrSettings, HashSet<string> names)
|
||||
{
|
||||
var buildPath = group.Settings.RemoteCatalogBuildPath;
|
||||
var schema = group.GetSchema<BundledAssetGroupSchema>();
|
||||
if (schema != null)
|
||||
{
|
||||
if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackSeparately)
|
||||
{
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
names.Add(bundleName);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackTogether)
|
||||
{
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
names.Add(bundleName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (schema.BundleMode == BundledAssetGroupSchema.BundlePackingMode.PackTogetherByLabel)
|
||||
{
|
||||
foreach (var entry in group.entries)
|
||||
{
|
||||
if (entry.labels.Any(x => x == "pack"))
|
||||
{
|
||||
if (Directory.Exists(buildPath.GetValue(addrSettings)) == false)
|
||||
{
|
||||
Debug.LogError($"{group.name} {entry.address} {buildPath.GetValue(addrSettings)}");
|
||||
continue;
|
||||
}
|
||||
string bundleName = Path.GetFileName(entry.BundleFileId);
|
||||
if (names.Contains(bundleName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
names.Add(bundleName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MenuItem("Window/Asset Management/Helper/Copy All To StreamingAssets")]
|
||||
public static void CopyALLToStreamingAssets()
|
||||
{
|
||||
var addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
var bundle_dir = addrSettings.RemoteCatalogBuildPath.GetValue(addrSettings);
|
||||
var bunldes = Directory.GetFiles(bundle_dir, $"*.bundle");
|
||||
foreach (var bunlde in bunldes)
|
||||
{
|
||||
File.Copy(bunlde, bunlde.Replace(bundle_dir, Application.streamingAssetsPath), true);
|
||||
}
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
public static string ExportAssetsFile()
|
||||
{
|
||||
var addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
var bundle_dir = addrSettings.RemoteCatalogBuildPath.GetValue(addrSettings);
|
||||
var allFileNames = new HashSet<string>(Directory.GetFiles(bundle_dir, $"*.bundle").Select(p => Path.GetFileName(p)));
|
||||
var packFileNanes = GetPackFileNames();
|
||||
var downloadFileNames = allFileNames.Except(packFileNanes);
|
||||
var bundles = new Dictionary<string, List<string>>();
|
||||
bundles["pack"] = packFileNanes.ToList();
|
||||
bundles["download"] = downloadFileNames.ToList();
|
||||
return Newtonsoft.Json.JsonConvert.SerializeObject(bundles, Newtonsoft.Json.Formatting.Indented);
|
||||
}
|
||||
|
||||
//public static void SyncGroups()
|
||||
//{
|
||||
//var helperSetting = AssetDatabase.LoadAssetAtPath<AddressableHelperSetting>(helperSettingPath);
|
||||
//var defines = helperSetting.GroupDefines;
|
||||
//var addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
|
||||
//foreach (var groupDefine in defines)
|
||||
//{
|
||||
//var groupName = groupDefine.name;
|
||||
//var group = addrSettings.FindGroup(groupName);
|
||||
|
||||
//if (null == group)
|
||||
//{
|
||||
//group = CreateGroup(groupDefine, addrSettings);
|
||||
//}
|
||||
//groupDefine.template.ApplyToAddressableAssetGroup(group);
|
||||
//SyncEntries(groupDefine, group, addrSettings);
|
||||
//EditorUtility.SetDirty(addrSettings);
|
||||
//AssetDatabase.SaveAssets();
|
||||
//}
|
||||
|
||||
//var folderDefines = helperSetting.GroupFolderDefines;
|
||||
//foreach (var folderDefine in folderDefines)
|
||||
//{
|
||||
//var groupName = folderDefine.name;
|
||||
//var group = addrSettings.FindGroup(groupName);
|
||||
|
||||
//if (null == group)
|
||||
//{
|
||||
//group = CreateGroupByFolder(groupName, folderDefine, addrSettings);
|
||||
//}
|
||||
//folderDefine.template.ApplyToAddressableAssetGroup(group);
|
||||
//SyncEntriesByFolder(folderDefine, group, addrSettings);
|
||||
//EditorUtility.SetDirty(addrSettings);
|
||||
//AssetDatabase.SaveAssets();
|
||||
//}
|
||||
//}
|
||||
|
||||
//[MenuItem("Window/Asset Management/Helper/Sync Groups PreloadOrPack", true)]
|
||||
//static bool ValidateSyncGroupsPRLabel() => IsSettingExists();
|
||||
|
||||
//[MenuItem("Window/Asset Management/Helper/Sync Groups PreloadOrPack")]
|
||||
//public static void SyncGroupsPRLabel()
|
||||
//{
|
||||
//var helperSetting = AssetDatabase.LoadAssetAtPath<AddressableHelperSetting>(helperSettingPath);
|
||||
//var defines = helperSetting.GroupDefines;
|
||||
//var addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
|
||||
//foreach (var groupDefine in defines)
|
||||
//{
|
||||
//var groupName = groupDefine.name;
|
||||
//var group = addrSettings.FindGroup(groupName);
|
||||
|
||||
//if (null != group)
|
||||
//{
|
||||
//foreach (var item in groupDefine.labels)
|
||||
//{
|
||||
//group.entries.ToList().ForEach(x => x.SetLabel(item.labelString, true, true));
|
||||
//}
|
||||
//}
|
||||
//}
|
||||
//EditorUtility.SetDirty(addrSettings);
|
||||
//AssetDatabase.SaveAssets();
|
||||
//}
|
||||
|
||||
//[MenuItem("Window/Asset Management/Helper/Sync Groups RewardLabel", true)]
|
||||
//static bool ValidateSyncGroupsRewardLabel() => IsSettingExists();
|
||||
|
||||
//[MenuItem("Window/Asset Management/Helper/Sync Groups RewardLabel")]
|
||||
//public static void SyncGroupsRewardLabel()
|
||||
//{
|
||||
//var helperSetting = AssetDatabase.LoadAssetAtPath<AddressableHelperSetting>(helperSettingPath);
|
||||
//var defines = helperSetting.GroupDefines;
|
||||
//var addrSettings = AddressableAssetSettingsDefaultObject.Settings;
|
||||
|
||||
//foreach (var groupDefine in defines)
|
||||
//{
|
||||
//var groupName = groupDefine.name;
|
||||
//var group = addrSettings.FindGroup(groupName);
|
||||
|
||||
//if (null != group)
|
||||
//{
|
||||
//foreach (var item in groupDefine.rewardLabels)
|
||||
//{
|
||||
//group.entries.ToList().ForEach(x => x.SetLabel(item.labelString, false, true));
|
||||
//}
|
||||
//}
|
||||
//}
|
||||
//EditorUtility.SetDirty(addrSettings);
|
||||
//AssetDatabase.SaveAssets();
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 218c59bf2d66c0c40b2118af7c5cdc61
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "addressables.helper",
|
||||
"rootNamespace": "addressables.helper",
|
||||
"references": [
|
||||
"Unity.Addressables.Editor",
|
||||
"Unity.Addressables",
|
||||
"inspector.extension"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ff1eccee924c22c468a32e5ed39e52ce
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
11
LocalPackages/AddressablesHelper/package.json
Normal file
11
LocalPackages/AddressablesHelper/package.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "com.addressable.helper",
|
||||
"version": "0.0.1",
|
||||
"displayName": "addressables helper",
|
||||
"unity": "2020.3",
|
||||
"unityRelease": "4f1",
|
||||
"author": {
|
||||
"name": "Skistua",
|
||||
"email": "b166er.dada@gmail.com"
|
||||
}
|
||||
}
|
||||
7
LocalPackages/AddressablesHelper/package.json.meta
Normal file
7
LocalPackages/AddressablesHelper/package.json.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aef2de6b51b58124689c45f28f861db0
|
||||
PackageManifestImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user