Ship the WeChat hot-update catalogs and the camp, TideWhale T2, UI atlas, and animation-lab work.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#if UNITY_EDITOR
|
||||
using System;
|
||||
using System.IO;
|
||||
using HotUpdate.UI;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.U2D;
|
||||
using YooAsset.Editor;
|
||||
|
||||
namespace AIGame.EditorTools
|
||||
{
|
||||
[DisplayName("UI 图片与所属图集同包")]
|
||||
public sealed class PackUiAtlas : IBundlePackRule
|
||||
{
|
||||
public BundlePackRuleResult GetPackRuleResult(BundlePackRuleData data)
|
||||
{
|
||||
string path = data.AssetPath.Replace('\\', '/');
|
||||
if (UiAtlasPaths.IsTexturePath(path)) path = UiAtlasPaths.GetAtlasPathForTexture(path);
|
||||
else if (!path.StartsWith(UiAtlasPaths.AtlasRoot + "/", StringComparison.Ordinal)
|
||||
|| !path.EndsWith(".spriteatlas", StringComparison.Ordinal))
|
||||
throw new ArgumentException("Not a UI atlas input: " + path);
|
||||
return new BundlePackRuleResult(Path.ChangeExtension(path, null), DefaultBundlePackRule.AssetBundleFileExtension);
|
||||
}
|
||||
}
|
||||
|
||||
[DisplayName("自动生成的 UI 图集")]
|
||||
public sealed class CollectUiAtlas : IAssetFilterRule
|
||||
{
|
||||
public string FindAssetType => "SpriteAtlas";
|
||||
public bool IsCollectAsset(AssetFilterRuleData data)
|
||||
{
|
||||
var atlas = AssetDatabase.LoadAssetAtPath<SpriteAtlas>(data.AssetPath);
|
||||
return atlas != null && Array.IndexOf(AssetDatabase.GetLabels(atlas), UiSpriteAtlasGenerator.GeneratedLabel) >= 0;
|
||||
}
|
||||
}
|
||||
|
||||
[DisplayName("UI 图集原图")]
|
||||
public sealed class CollectUiAtlasTexture : IAssetFilterRule
|
||||
{
|
||||
public string FindAssetType => "Texture2D";
|
||||
public bool IsCollectAsset(AssetFilterRuleData data)
|
||||
{
|
||||
return UiAtlasPaths.IsTexturePath(data.AssetPath)
|
||||
&& AssetDatabase.LoadAssetAtPath<SpriteAtlas>(UiAtlasPaths.GetAtlasPathForTexture(data.AssetPath)) != null
|
||||
&& (AssetImporter.GetAtPath(data.AssetPath) as TextureImporter)?.textureType == TextureImporterType.Sprite;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user