mirror of https://github.com/tuyoogame/YooAsset
update test sample
parent
064d69269e
commit
317c42521a
|
@ -71,6 +71,7 @@ public static class TestPackageBuilder
|
||||||
buildParameters.ClearBuildCacheFiles = true;
|
buildParameters.ClearBuildCacheFiles = true;
|
||||||
buildParameters.UseAssetDependencyDB = true;
|
buildParameters.UseAssetDependencyDB = true;
|
||||||
buildParameters.BuiltinShadersBundleName = builtinShaderBundleName;
|
buildParameters.BuiltinShadersBundleName = builtinShaderBundleName;
|
||||||
|
buildParameters.EncryptionServices = new FileStreamEncryption();
|
||||||
|
|
||||||
var pipeline = new ScriptableBuildPipeline();
|
var pipeline = new ScriptableBuildPipeline();
|
||||||
BuildResult buildResult = pipeline.Run(buildParameters, false);
|
BuildResult buildResult = pipeline.Run(buildParameters, false);
|
||||||
|
@ -107,6 +108,7 @@ public static class TestPackageBuilder
|
||||||
buildParameters.CompressOption = ECompressOption.LZ4;
|
buildParameters.CompressOption = ECompressOption.LZ4;
|
||||||
buildParameters.ClearBuildCacheFiles = true;
|
buildParameters.ClearBuildCacheFiles = true;
|
||||||
buildParameters.UseAssetDependencyDB = true;
|
buildParameters.UseAssetDependencyDB = true;
|
||||||
|
buildParameters.EncryptionServices = new FileStreamEncryption();
|
||||||
|
|
||||||
var pipeline = new BuiltinBuildPipeline();
|
var pipeline = new BuiltinBuildPipeline();
|
||||||
BuildResult buildResult = pipeline.Run(buildParameters, false);
|
BuildResult buildResult = pipeline.Run(buildParameters, false);
|
||||||
|
|
|
@ -160,6 +160,24 @@ public class T0_InitYooAssets : IPrebuildSetup, IPostBuildCleanup
|
||||||
collector5.PackRuleName = nameof(YooAsset.Editor.PackDirectory);
|
collector5.PackRuleName = nameof(YooAsset.Editor.PackDirectory);
|
||||||
YooAsset.Editor.AssetBundleCollectorSettingData.CreateCollector(referenceGroup, collector5);
|
YooAsset.Editor.AssetBundleCollectorSettingData.CreateCollector(referenceGroup, collector5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 加密测试文件
|
||||||
|
var encryptGroup = YooAsset.Editor.AssetBundleCollectorSettingData.CreateGroup(testPackage, "EncryptGroup");
|
||||||
|
{
|
||||||
|
var collector1 = new YooAsset.Editor.AssetBundleCollector();
|
||||||
|
collector1.CollectPath = "";
|
||||||
|
collector1.CollectorGUID = "e082d492b9da65e499cee3495be3645d"; //TestRes3/music目录
|
||||||
|
collector1.CollectorType = YooAsset.Editor.ECollectorType.MainAssetCollector;
|
||||||
|
collector1.PackRuleName = nameof(YooAsset.Editor.PackDirectory);
|
||||||
|
YooAsset.Editor.AssetBundleCollectorSettingData.CreateCollector(referenceGroup, collector1);
|
||||||
|
|
||||||
|
var collector2 = new YooAsset.Editor.AssetBundleCollector();
|
||||||
|
collector2.CollectPath = "";
|
||||||
|
collector2.CollectorGUID = "8c5a1726d94498e4cbe30f5f510cc796"; //TestRes3/prefab目录
|
||||||
|
collector2.CollectorType = YooAsset.Editor.ECollectorType.MainAssetCollector;
|
||||||
|
collector2.PackRuleName = nameof(YooAsset.Editor.PackDirectory);
|
||||||
|
YooAsset.Editor.AssetBundleCollectorSettingData.CreateCollector(referenceGroup, collector2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
private static void CreateRawBundlePackageCollector()
|
private static void CreateRawBundlePackageCollector()
|
||||||
{
|
{
|
||||||
|
|
|
@ -60,7 +60,8 @@ public class T2_TestBuldinFileSystem : IPrebuildSetup, IPostBuildCleanup
|
||||||
|
|
||||||
// 初始化资源包
|
// 初始化资源包
|
||||||
var initParams = new OfflinePlayModeParameters();
|
var initParams = new OfflinePlayModeParameters();
|
||||||
initParams.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(null, packageRoot);
|
var decryption = new FileStreamDecryption();
|
||||||
|
initParams.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(decryption, packageRoot);
|
||||||
var initializeOp = package.InitializeAsync(initParams);
|
var initializeOp = package.InitializeAsync(initParams);
|
||||||
yield return initializeOp;
|
yield return initializeOp;
|
||||||
if (initializeOp.Status != EOperationStatus.Succeed)
|
if (initializeOp.Status != EOperationStatus.Succeed)
|
||||||
|
@ -181,14 +182,21 @@ public class T2_TestBuldinFileSystem : IPrebuildSetup, IPostBuildCleanup
|
||||||
var tester = new TestLoadVideo();
|
var tester = new TestLoadVideo();
|
||||||
yield return tester.RuntimeTester();
|
yield return tester.RuntimeTester();
|
||||||
}
|
}
|
||||||
|
|
||||||
[UnityTest]
|
[UnityTest]
|
||||||
public IEnumerator C_TestBundleReference()
|
public IEnumerator C1_TestBundleReference()
|
||||||
{
|
{
|
||||||
var tester = new TestBundleReference();
|
var tester = new TestBundleReference();
|
||||||
yield return tester.RuntimeTester();
|
yield return tester.RuntimeTester();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator C2_TestBundleEncryption()
|
||||||
|
{
|
||||||
|
var tester = new TestBundleEncryption();
|
||||||
|
yield return tester.RuntimeTester();
|
||||||
|
}
|
||||||
|
|
||||||
[UnityTest]
|
[UnityTest]
|
||||||
public IEnumerator D_DestroyPackage()
|
public IEnumerator D_DestroyPackage()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,9 +1,38 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Collections;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using UnityEngine.U2D;
|
||||||
|
using UnityEngine.TestTools;
|
||||||
|
using NUnit.Framework;
|
||||||
using YooAsset;
|
using YooAsset;
|
||||||
|
|
||||||
|
public class TestBundleEncryption
|
||||||
|
{
|
||||||
|
public IEnumerator RuntimeTester()
|
||||||
|
{
|
||||||
|
ResourcePackage package = YooAssets.GetPackage(TestDefine.AssetBundlePackageName);
|
||||||
|
Assert.IsNotNull(package);
|
||||||
|
|
||||||
|
// 加载音乐播放预制体
|
||||||
|
{
|
||||||
|
var assetHandle = package.LoadAssetAsync<GameObject>("prefab_audio");
|
||||||
|
yield return assetHandle;
|
||||||
|
Assert.AreEqual(EOperationStatus.Succeed, assetHandle.Status);
|
||||||
|
|
||||||
|
var go = assetHandle.InstantiateSync(Vector3.zero, Quaternion.identity);
|
||||||
|
Assert.IsNotNull(go);
|
||||||
|
|
||||||
|
var audioSource = go.GetComponent<AudioSource>();
|
||||||
|
Assert.IsNotNull(audioSource.clip);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 试听三秒钟
|
||||||
|
yield return new WaitForSeconds(3f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 文件流加密方式
|
/// 文件流加密方式
|
||||||
|
@ -12,7 +41,8 @@ public class FileStreamEncryption : IEncryptionServices
|
||||||
{
|
{
|
||||||
public EncryptResult Encrypt(EncryptFileInfo fileInfo)
|
public EncryptResult Encrypt(EncryptFileInfo fileInfo)
|
||||||
{
|
{
|
||||||
if (fileInfo.BundleName.Contains("_gameres_audio"))
|
// 说明:对TestRes3资源目录进行加密
|
||||||
|
if (fileInfo.BundleName.Contains("_testres3_"))
|
||||||
{
|
{
|
||||||
var fileData = File.ReadAllBytes(fileInfo.FileLoadPath);
|
var fileData = File.ReadAllBytes(fileInfo.FileLoadPath);
|
||||||
for (int i = 0; i < fileData.Length; i++)
|
for (int i = 0; i < fileData.Length; i++)
|
||||||
|
@ -41,8 +71,8 @@ public class FileOffsetEncryption : IEncryptionServices
|
||||||
{
|
{
|
||||||
public EncryptResult Encrypt(EncryptFileInfo fileInfo)
|
public EncryptResult Encrypt(EncryptFileInfo fileInfo)
|
||||||
{
|
{
|
||||||
// 注意:只对音频资源包加密
|
// 说明:对TestRes3资源目录进行加密
|
||||||
if (fileInfo.BundleName.Contains("_gameres_audio"))
|
if (fileInfo.BundleName.Contains("_testres3_"))
|
||||||
{
|
{
|
||||||
int offset = 32;
|
int offset = 32;
|
||||||
byte[] fileData = File.ReadAllBytes(fileInfo.FileLoadPath);
|
byte[] fileData = File.ReadAllBytes(fileInfo.FileLoadPath);
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 322528c1db93d664b92120fa0c91e484
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e082d492b9da65e499cee3495be3645d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,59 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cec4a3bb047ca4e478315ee5c98fa75a
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 2
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0.5
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
platformSettingOverrides:
|
||||||
|
1:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 2
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0.5
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
4:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 2
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0.5
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
7:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 2
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0.5
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
13:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 2
|
||||||
|
sampleRateSetting: 2
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 7
|
||||||
|
quality: 0.5
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8c5a1726d94498e4cbe30f5f510cc796
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,139 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3749121449083481702
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1740794871874781600}
|
||||||
|
- component: {fileID: 8364371343008149393}
|
||||||
|
- component: {fileID: 7423861191467597400}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: prefab_audio
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1740794871874781600
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3749121449083481702}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -1.5441012, y: -1.4355755, z: -5.0895267}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!82 &8364371343008149393
|
||||||
|
AudioSource:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3749121449083481702}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 4
|
||||||
|
OutputAudioMixerGroup: {fileID: 0}
|
||||||
|
m_audioClip: {fileID: 8300000, guid: cec4a3bb047ca4e478315ee5c98fa75a, type: 3}
|
||||||
|
m_PlayOnAwake: 1
|
||||||
|
m_Volume: 1
|
||||||
|
m_Pitch: 1
|
||||||
|
Loop: 1
|
||||||
|
Mute: 0
|
||||||
|
Spatialize: 0
|
||||||
|
SpatializePostEffects: 0
|
||||||
|
Priority: 128
|
||||||
|
DopplerLevel: 1
|
||||||
|
MinDistance: 1
|
||||||
|
MaxDistance: 500
|
||||||
|
Pan2D: 0
|
||||||
|
rolloffMode: 0
|
||||||
|
BypassEffects: 0
|
||||||
|
BypassListenerEffects: 0
|
||||||
|
BypassReverbZones: 0
|
||||||
|
rolloffCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
panLevelCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
spreadCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
reverbZoneMixCustomCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
--- !u!81 &7423861191467597400
|
||||||
|
AudioListener:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3749121449083481702}
|
||||||
|
m_Enabled: 1
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 742458f8f1eb9a74e840f3a6d3043678
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in New Issue