50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using UnityEngine;
|
|
using YooAsset.Editor;
|
|
|
|
[DisplayName("打包特效纹理(自定义)")]
|
|
public class PackEffectTexture : IPackRule
|
|
{
|
|
private const string PackDirectory = "Assets/Effect/Textures/";
|
|
|
|
PackRuleResult IPackRule.GetPackRuleResult(PackRuleData data)
|
|
{
|
|
string assetPath = data.AssetPath;
|
|
if (assetPath.StartsWith(PackDirectory) == false)
|
|
throw new Exception($"Only support folder : {PackDirectory}");
|
|
|
|
string assetName = Path.GetFileName(assetPath).ToLower();
|
|
string firstChar = assetName.Substring(0, 1);
|
|
string bundleName = $"{PackDirectory}effect_texture_{firstChar}";
|
|
var packRuleResult = new PackRuleResult(bundleName, DefaultPackRule.AssetBundleFileExtension);
|
|
return packRuleResult;
|
|
}
|
|
}
|
|
|
|
[DisplayName("打包视频(自定义)")]
|
|
public class PackVideo : IPackRule
|
|
{
|
|
public PackRuleResult GetPackRuleResult(PackRuleData data)
|
|
{
|
|
string bundleName = RemoveExtension(data.AssetPath);
|
|
string fileExtension = Path.GetExtension(data.AssetPath);
|
|
fileExtension = fileExtension.Remove(0, 1);
|
|
PackRuleResult result = new PackRuleResult(bundleName, fileExtension);
|
|
return result;
|
|
}
|
|
|
|
private string RemoveExtension(string str)
|
|
{
|
|
if (string.IsNullOrEmpty(str))
|
|
return str;
|
|
|
|
int index = str.LastIndexOf(".");
|
|
if (index == -1)
|
|
return str;
|
|
else
|
|
return str.Remove(index); //"assets/config/test.unity3d" --> "assets/config/test"
|
|
}
|
|
} |