mirror of
https://github.com/tuyoogame/YooAsset.git
synced 2026-05-23 09:10:11 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd0a6579b8 | ||
|
|
18c2e232cf | ||
|
|
ad680638ac | ||
|
|
0764061d8f | ||
|
|
d448026250 | ||
|
|
34f553b9e3 | ||
|
|
25d1e32ce9 |
@@ -2,6 +2,17 @@
|
|||||||
|
|
||||||
All notable changes to this package will be documented in this file.
|
All notable changes to this package will be documented in this file.
|
||||||
|
|
||||||
|
## [1.4.14] - 2023-05-26
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- 修复了收集器对着色器未过滤的问题。
|
||||||
|
- 修复了内置着色器Tag特殊情况下未正确传染给依赖资源包的问题。
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Unity2021版本及以上推荐使用可编程构建管线(SBP)
|
||||||
|
|
||||||
## [1.4.13] - 2023-05-12
|
## [1.4.13] - 2023-05-12
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
@@ -205,6 +205,7 @@ namespace YooAsset.Editor
|
|||||||
throw new Exception("没有发现着色器资源包!");
|
throw new Exception("没有发现着色器资源包!");
|
||||||
|
|
||||||
// 检测依赖交集并更新依赖ID
|
// 检测依赖交集并更新依赖ID
|
||||||
|
HashSet<string> tagTemps = new HashSet<string>();
|
||||||
foreach (var packageAsset in manifest.AssetList)
|
foreach (var packageAsset in manifest.AssetList)
|
||||||
{
|
{
|
||||||
List<string> dependBundles = GetPackageAssetAllDependBundles(manifest, packageAsset);
|
List<string> dependBundles = GetPackageAssetAllDependBundles(manifest, packageAsset);
|
||||||
@@ -215,8 +216,23 @@ namespace YooAsset.Editor
|
|||||||
if (newDependIDs.Contains(shaderBundleId) == false)
|
if (newDependIDs.Contains(shaderBundleId) == false)
|
||||||
newDependIDs.Add(shaderBundleId);
|
newDependIDs.Add(shaderBundleId);
|
||||||
packageAsset.DependIDs = newDependIDs.ToArray();
|
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)
|
private List<string> GetPackageAssetAllDependBundles(PackageManifest manifest, PackageAsset packageAsset)
|
||||||
{
|
{
|
||||||
@@ -302,7 +318,7 @@ namespace YooAsset.Editor
|
|||||||
{
|
{
|
||||||
if (packageBundle.IsRawFile)
|
if (packageBundle.IsRawFile)
|
||||||
{
|
{
|
||||||
_cachedBundleDepends.Add(packageBundle.BundleName, new string[] { } );
|
_cachedBundleDepends.Add(packageBundle.BundleName, new string[] { });
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -321,7 +337,7 @@ namespace YooAsset.Editor
|
|||||||
}
|
}
|
||||||
EditorTools.ClearProgressBar();
|
EditorTools.ClearProgressBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int[] GetBundleRefrenceIDs(PackageManifest manifest, PackageBundle targetBundle)
|
private int[] GetBundleRefrenceIDs(PackageManifest manifest, PackageBundle targetBundle)
|
||||||
{
|
{
|
||||||
List<string> referenceList = new List<string>();
|
List<string> referenceList = new List<string>();
|
||||||
|
|||||||
@@ -24,6 +24,13 @@ namespace YooAsset.Editor
|
|||||||
|
|
||||||
if (buildParameters.BuildMode != EBuildMode.SimulateBuild)
|
if (buildParameters.BuildMode != EBuildMode.SimulateBuild)
|
||||||
{
|
{
|
||||||
|
#if UNITY_2021_3_OR_NEWER
|
||||||
|
if (buildParameters.BuildPipeline == EBuildPipeline.BuiltinBuildPipeline)
|
||||||
|
{
|
||||||
|
BuildLogger.Warning("推荐使用可编程构建管线(SBP)!");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// 检测当前是否正在构建资源包
|
// 检测当前是否正在构建资源包
|
||||||
if (BuildPipeline.isBuildingPlayer)
|
if (BuildPipeline.isBuildingPlayer)
|
||||||
throw new Exception("当前正在构建资源包,请结束后再试");
|
throw new Exception("当前正在构建资源包,请结束后再试");
|
||||||
|
|||||||
@@ -290,10 +290,6 @@ namespace YooAsset.Editor
|
|||||||
}
|
}
|
||||||
private bool IsCollectAsset(string assetPath)
|
private bool IsCollectAsset(string assetPath)
|
||||||
{
|
{
|
||||||
Type assetType = AssetDatabase.GetMainAssetTypeAtPath(assetPath);
|
|
||||||
if (assetType == typeof(UnityEngine.Shader) || assetType == typeof(UnityEngine.ShaderVariantCollection))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// 根据规则设置过滤资源文件
|
// 根据规则设置过滤资源文件
|
||||||
IFilterRule filterRuleInstance = AssetBundleCollectorSettingData.GetFilterRuleInstance(FilterRuleName);
|
IFilterRule filterRuleInstance = AssetBundleCollectorSettingData.GetFilterRuleInstance(FilterRuleName);
|
||||||
return filterRuleInstance.IsCollectAsset(new FilterRuleData(assetPath));
|
return filterRuleInstance.IsCollectAsset(new FilterRuleData(assetPath));
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ namespace YooAsset
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
_steps = ESteps.LoadFile;
|
_steps = ESteps.LoadFile;
|
||||||
|
return; //下载完毕等待一帧再去加载!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ namespace YooAsset
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
_steps = ESteps.LoadCacheFile;
|
_steps = ESteps.LoadCacheFile;
|
||||||
|
return; //下载完毕等待一帧再去加载!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,20 +47,6 @@ public class FileStreamEncryption : IEncryptionServices
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadFromFileOffset
|
|
||||||
if (fileInfo.BundleName.Contains("_gameres_uiimage"))
|
|
||||||
{
|
|
||||||
var fileData = File.ReadAllBytes(fileInfo.FilePath);
|
|
||||||
int offset = 32;
|
|
||||||
var temper = new byte[fileData.Length + offset];
|
|
||||||
Buffer.BlockCopy(fileData, 0, temper, offset, fileData.Length);
|
|
||||||
|
|
||||||
EncryptResult result = new EncryptResult();
|
|
||||||
result.LoadMethod = EBundleLoadMethod.LoadFromFileOffset;
|
|
||||||
result.EncryptedData = temper;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Normal
|
// Normal
|
||||||
{
|
{
|
||||||
EncryptResult result = new EncryptResult();
|
EncryptResult result = new EncryptResult();
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ internal class FsmInitialize : IStateNode
|
|||||||
}
|
}
|
||||||
|
|
||||||
yield return initializationOperation;
|
yield return initializationOperation;
|
||||||
if (package.InitializeStatus == EOperationStatus.Succeed)
|
if (initializationOperation.Status == EOperationStatus.Succeed)
|
||||||
{
|
{
|
||||||
_machine.ChangeState<FsmUpdateVersion>();
|
_machine.ChangeState<FsmUpdateVersion>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4b1fa97e8bb8c5c46ad030b9554e1b5c
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7bfd05221983858429246096617dff1d
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b19a7385dee2d0141901167dbfda9300
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
//-------------------------------------
|
|
||||||
// 作者:Stark
|
|
||||||
//-------------------------------------
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public sealed class StreamingAssetsHelper
|
|
||||||
{
|
|
||||||
private static readonly Dictionary<string, bool> _cacheData = new Dictionary<string, bool>(1000);
|
|
||||||
|
|
||||||
#if UNITY_ANDROID && !UNITY_EDITOR
|
|
||||||
private static AndroidJavaClass _unityPlayerClass;
|
|
||||||
public static AndroidJavaClass UnityPlayerClass
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_unityPlayerClass == null)
|
|
||||||
_unityPlayerClass = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer");
|
|
||||||
return _unityPlayerClass;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static AndroidJavaObject _currentActivity;
|
|
||||||
public static AndroidJavaObject CurrentActivity
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_currentActivity == null)
|
|
||||||
_currentActivity = UnityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
|
|
||||||
return _currentActivity;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 利用安卓原生接口查询内置文件是否存在
|
|
||||||
/// </summary>
|
|
||||||
public static bool FileExists(string filePath)
|
|
||||||
{
|
|
||||||
if (_cacheData.TryGetValue(filePath, out bool result) == false)
|
|
||||||
{
|
|
||||||
result = CurrentActivity.Call<bool>("CheckAssetExist", filePath);
|
|
||||||
_cacheData.Add(filePath, result);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
public static bool FileExists(string filePath)
|
|
||||||
{
|
|
||||||
if (_cacheData.TryGetValue(filePath, out bool result) == false)
|
|
||||||
{
|
|
||||||
result = System.IO.File.Exists(System.IO.Path.Combine(Application.streamingAssetsPath, filePath));
|
|
||||||
_cacheData.Add(filePath, result);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,64 @@
|
|||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
// 作者:Stark
|
// 作者:Stark
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// StreamingAssets目录下资源查询帮助类
|
||||||
|
/// </summary>
|
||||||
|
public sealed class StreamingAssetsHelper
|
||||||
|
{
|
||||||
|
private static readonly Dictionary<string, bool> _cacheData = new Dictionary<string, bool>(1000);
|
||||||
|
|
||||||
|
#if UNITY_ANDROID && !UNITY_EDITOR
|
||||||
|
private static AndroidJavaClass _unityPlayerClass;
|
||||||
|
public static AndroidJavaClass UnityPlayerClass
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_unityPlayerClass == null)
|
||||||
|
_unityPlayerClass = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer");
|
||||||
|
return _unityPlayerClass;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AndroidJavaObject _currentActivity;
|
||||||
|
public static AndroidJavaObject CurrentActivity
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_currentActivity == null)
|
||||||
|
_currentActivity = UnityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
|
||||||
|
return _currentActivity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 利用安卓原生接口查询内置文件是否存在
|
||||||
|
/// </summary>
|
||||||
|
public static bool FileExists(string filePath)
|
||||||
|
{
|
||||||
|
if (_cacheData.TryGetValue(filePath, out bool result) == false)
|
||||||
|
{
|
||||||
|
result = CurrentActivity.Call<bool>("CheckAssetExist", filePath);
|
||||||
|
_cacheData.Add(filePath, result);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
public static bool FileExists(string filePath)
|
||||||
|
{
|
||||||
|
if (_cacheData.TryGetValue(filePath, out bool result) == false)
|
||||||
|
{
|
||||||
|
result = System.IO.File.Exists(System.IO.Path.Combine(Application.streamingAssetsPath, filePath));
|
||||||
|
_cacheData.Add(filePath, result);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if UNITY_ANDROID && UNITY_EDITOR
|
#if UNITY_ANDROID && UNITY_EDITOR
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -69,7 +127,7 @@ public boolean CheckAssetExist(String filePath)
|
|||||||
}
|
}
|
||||||
catch(java.io.IOException e)
|
catch(java.io.IOException e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
//e.printStackTrace();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "com.tuyoogame.yooasset",
|
"name": "com.tuyoogame.yooasset",
|
||||||
"displayName": "YooAsset",
|
"displayName": "YooAsset",
|
||||||
"version": "1.4.13",
|
"version": "1.4.14",
|
||||||
"unity": "2019.4",
|
"unity": "2019.4",
|
||||||
"description": "unity3d resources management system.",
|
"description": "unity3d resources management system.",
|
||||||
"author": {
|
"author": {
|
||||||
|
|||||||
Reference in New Issue
Block a user