diff --git a/Assets/YooAsset/Samples~/Test Sample/Editor/TestSimulateBuilder.cs b/Assets/YooAsset/Samples~/Test Sample/Editor/TestSimulateBuilder.cs
index 8526b3e4..0789a27b 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Editor/TestSimulateBuilder.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Editor/TestSimulateBuilder.cs	
@@ -22,7 +22,7 @@ public static class TestSimulateBuilder
             buildParameters.BuildBundleType = (int)EBuildBundleType.VirtualBundle;
             buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
             buildParameters.PackageName = packageName;
-            buildParameters.PackageVersion = "Simulate";
+            buildParameters.PackageVersion = "ESBP_Simulate";
             buildParameters.FileNameStyle = EFileNameStyle.HashName;
             buildParameters.BuildinFileCopyOption = EBuildinFileCopyOption.None;
             buildParameters.BuildinFileCopyParams = string.Empty;
@@ -50,7 +50,7 @@ public static class TestSimulateBuilder
             buildParameters.BuildBundleType = (int)EBuildBundleType.AssetBundle;
             buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
             buildParameters.PackageName = packageName;
-            buildParameters.PackageVersion = "Simulate";
+            buildParameters.PackageVersion = "SBP_Simulate";
             buildParameters.EnableSharePackRule = true;
             buildParameters.VerifyBuildingResult = true;
             buildParameters.FileNameStyle = EFileNameStyle.HashName;
@@ -83,7 +83,7 @@ public static class TestSimulateBuilder
             buildParameters.BuildBundleType = (int)EBuildBundleType.AssetBundle;
             buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
             buildParameters.PackageName = packageName;
-            buildParameters.PackageVersion = "Simulate";
+            buildParameters.PackageVersion = "BBP_Simulate";
             buildParameters.EnableSharePackRule = true;
             buildParameters.VerifyBuildingResult = true;
             buildParameters.FileNameStyle = EFileNameStyle.HashName;
@@ -116,7 +116,7 @@ public static class TestSimulateBuilder
             buildParameters.BuildBundleType = (int)EBuildBundleType.RawBundle;
             buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
             buildParameters.PackageName = packageName;
-            buildParameters.PackageVersion = "Simulate";
+            buildParameters.PackageVersion = "RFBP_Simulate";
             buildParameters.VerifyBuildingResult = true;
             buildParameters.FileNameStyle = EFileNameStyle.HashName;
             buildParameters.BuildinFileCopyOption = EBuildinFileCopyOption.None;
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorDefine.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorDefine.cs
new file mode 100644
index 00000000..11cce93d
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorDefine.cs	
@@ -0,0 +1,6 @@
+
+public class AssetBundleCollectorDefine
+{
+    public const string TestPackageName = "TestPackage";
+    public const string RawPackageName = "RawPackage";
+}
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorDefine.cs.meta b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorDefine.cs.meta
new file mode 100644
index 00000000..86a432bb
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorDefine.cs.meta	
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4b69d1ce3e025474e84dd43b10068740
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorMaker.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorMaker.cs
index de75421a..f1804cb4 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorMaker.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorMaker.cs	
@@ -15,7 +15,7 @@ public static class AssetBundleCollectorMaker
         YooAsset.Editor.AssetBundleCollectorSettingData.ClearAll();
 
         // 创建正常文件Package
-        var testPackage = YooAsset.Editor.AssetBundleCollectorSettingData.CreatePackage("TestPackage");
+        var testPackage = YooAsset.Editor.AssetBundleCollectorSettingData.CreatePackage(AssetBundleCollectorDefine.TestPackageName);
         testPackage.EnableAddressable = true;
         testPackage.AutoCollectShaders = true;
         testPackage.IgnoreRuleName = "NormalIgnoreRule";
@@ -27,7 +27,7 @@ public static class AssetBundleCollectorMaker
             collector1.CollectPath = "";
             collector1.CollectorGUID = "bbce3e09a17b55c46b5615e995b5fc70"; //TestRes/Audios目录
             collector1.CollectorType = YooAsset.Editor.ECollectorType.MainAssetCollector;
-            collector1.PackRuleName = nameof(YooAsset.Editor.PackDirectory);
+            collector1.PackRuleName = nameof(YooAsset.Editor.PackSeparately);
             YooAsset.Editor.AssetBundleCollectorSettingData.CreateCollector(audioGroup, collector1);
         }
 
@@ -38,7 +38,7 @@ public static class AssetBundleCollectorMaker
             collector1.CollectPath = "";
             collector1.CollectorGUID = "d4768b7c3d3101d4ea693f95b337861d"; //TestRes/Image目录
             collector1.CollectorType = YooAsset.Editor.ECollectorType.MainAssetCollector;
-            collector1.PackRuleName = nameof(YooAsset.Editor.PackDirectory);
+            collector1.PackRuleName = nameof(YooAsset.Editor.PackSeparately);
             YooAsset.Editor.AssetBundleCollectorSettingData.CreateCollector(imageGroup, collector1);
         }
 
@@ -89,11 +89,12 @@ public static class AssetBundleCollectorMaker
             collector1.CollectPath = "";
             collector1.CollectorGUID = "af885cf1a7abb8c44bd9d139409d2961"; //TestRes/ScriptableObject目录
             collector1.CollectorType = YooAsset.Editor.ECollectorType.MainAssetCollector;
+            collector1.PackRuleName = nameof(YooAsset.Editor.PackSeparately);
             YooAsset.Editor.AssetBundleCollectorSettingData.CreateCollector(scriptableObjectGroup, collector1);
         }
 
         // 创建原生文件Package
-        var rawPackage = YooAsset.Editor.AssetBundleCollectorSettingData.CreatePackage("RawPackage");
+        var rawPackage = YooAsset.Editor.AssetBundleCollectorSettingData.CreatePackage(AssetBundleCollectorDefine.RawPackageName);
         rawPackage.EnableAddressable = true;
         rawPackage.AutoCollectShaders = true;
         rawPackage.IgnoreRuleName = "RawFileIgnoreRule";
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorPreapre.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorPreapre.cs
new file mode 100644
index 00000000..e2041fe1
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorPreapre.cs	
@@ -0,0 +1,28 @@
+using System;
+using System.IO;
+using System.Text;
+using System.Collections;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.U2D;
+using UnityEngine.TestTools;
+using NUnit.Framework;
+using YooAsset;
+
+public class AssetBundleCollectorPreapre : IPrebuildSetup, IPostBuildCleanup
+{
+    void IPrebuildSetup.Setup()
+    {
+        AssetBundleCollectorMaker.MakeCollectorSettingData();
+    }
+    void IPostBuildCleanup.Cleanup()
+    {
+    }
+
+    [Test]
+    public void InitializeYooAssets()
+    {
+        // 初始化YooAsset
+        YooAssets.Initialize();
+    }
+}
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorPreapre.cs.meta b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorPreapre.cs.meta
new file mode 100644
index 00000000..fdb3e838
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/AssetBundleCollectorPreapre.cs.meta	
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 07f7c95e8e42fd04f81b9925b2dcf0d0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/BuildinFileSystemTester.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/BuildinFileSystemTester.cs
index 1c27f131..19dcebf4 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/BuildinFileSystemTester.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/BuildinFileSystemTester.cs	
@@ -11,57 +11,52 @@ using YooAsset;
 
 public class BuildinFileSystemTester : IPrebuildSetup, IPostBuildCleanup
 {
-    private const string TEST_PACKAGE_ROOT_KEY = "TEST_PACKAGE_ROOT_KEY";
-    private const string RAW_PACKAGE_ROOT_KEY = "RAW_PACKAGE_ROOT_KEY";
+    private const string BFS_TEST_PACKAGE_ROOT_KEY = "BFS_TEST_PACKAGE_ROOT_KEY";
+    private const string BFS_RAW_PACKAGE_ROOT_KEY = "BFS_RAW_PACKAGE_ROOT_KEY";
 
     void IPrebuildSetup.Setup()
     {
 #if UNITY_EDITOR
-        AssetBundleCollectorMaker.MakeCollectorSettingData();
-
         // 构建TestPackage
         {
-            var simulateParams = new EditorSimulateBuildParam("TestPackage");
+            var simulateParams = new EditorSimulateBuildParam(AssetBundleCollectorDefine.TestPackageName);
             simulateParams.BuildPipelineName = "ScriptableBuildPipeline";
             simulateParams.InvokeAssmeblyName = "YooAsset.Test.Editor";
             simulateParams.InvokeClassFullName = "TestSimulateBuilder";
             simulateParams.InvokeMethodName = "SimulateBuild";
             var simulateResult = EditorSimulateModeHelper.SimulateBuild(simulateParams);
-            UnityEditor.EditorPrefs.SetString(TEST_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
+            UnityEditor.EditorPrefs.SetString(BFS_TEST_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
         }
 
         // 构建RawPackage
         {
-            var simulateParams = new EditorSimulateBuildParam("RawPackage");
+            var simulateParams = new EditorSimulateBuildParam(AssetBundleCollectorDefine.RawPackageName);
             simulateParams.BuildPipelineName = "RawFileBuildPipeline";
             simulateParams.InvokeAssmeblyName = "YooAsset.Test.Editor";
             simulateParams.InvokeClassFullName = "TestSimulateBuilder";
             simulateParams.InvokeMethodName = "SimulateBuild";
             var simulateResult = EditorSimulateModeHelper.SimulateBuild(simulateParams);
-            UnityEditor.EditorPrefs.SetString(RAW_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
+            UnityEditor.EditorPrefs.SetString(BFS_RAW_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
         }
 #endif
     }
     void IPostBuildCleanup.Cleanup()
     {
     }
-
-    [UnitySetUp]
-    public virtual IEnumerator RuntimeSetup()
+    
+    [UnityTest]
+    public IEnumerator InitializePackage()
     {
-        // 初始化YooAsset
-        YooAssets.Initialize();
-
         // 初始化TestPackage
         {
             string packageRoot = string.Empty;
 #if UNITY_EDITOR
-            packageRoot = UnityEditor.EditorPrefs.GetString(TEST_PACKAGE_ROOT_KEY);
+            packageRoot = UnityEditor.EditorPrefs.GetString(BFS_TEST_PACKAGE_ROOT_KEY);
 #endif
             if (Directory.Exists(packageRoot) == false)
                 throw new Exception($"Not found package root : {packageRoot}");
 
-            var package = YooAssets.CreatePackage("TestPackage");
+            var package = YooAssets.CreatePackage(AssetBundleCollectorDefine.TestPackageName);
 
             // 初始化资源包
             var initParams = new OfflinePlayModeParameters();
@@ -91,12 +86,12 @@ public class BuildinFileSystemTester : IPrebuildSetup, IPostBuildCleanup
         {
             string packageRoot = string.Empty;
 #if UNITY_EDITOR
-            packageRoot = UnityEditor.EditorPrefs.GetString(RAW_PACKAGE_ROOT_KEY);
+            packageRoot = UnityEditor.EditorPrefs.GetString(BFS_RAW_PACKAGE_ROOT_KEY);
 #endif
             if (Directory.Exists(packageRoot) == false)
                 throw new Exception($"Not found package root : {packageRoot}");
 
-            var package = YooAssets.CreatePackage("RawPackage");
+            var package = YooAssets.CreatePackage(AssetBundleCollectorDefine.RawPackageName);
 
             // 初始化资源包
             var initParams = new OfflinePlayModeParameters();
@@ -125,9 +120,58 @@ public class BuildinFileSystemTester : IPrebuildSetup, IPostBuildCleanup
     }
 
     [UnityTest]
-    public IEnumerator RuntimeInit()
+    public IEnumerator TestLoadAudio()
     {
-        // 声明该方法可以被自动化流程识别!
-        yield break;
+        var tester = new TestLoadAudio();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadImage()
+    {
+        var tester = new TestLoadImage();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadPrefab()
+    {
+        var tester = new TestLoadPrefab();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadScene()
+    {
+        var tester = new TestLoadScene();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadScriptableObject()
+    {
+        var tester = new TestLoadScriptableObject();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadSpriteAtlas()
+    {
+        var tester = new TestLoadSpriteAtlas();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadRawFile()
+    {
+        var tester = new TestLoadRawFile();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadVideo()
+    {
+        var tester = new TestLoadVideo();
+        yield return tester.RuntimeTester();
     }
 }
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/EditorFileSystemTester.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/EditorFileSystemTester.cs
index 9fbdf45e..2fd30155 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/EditorFileSystemTester.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/EditorFileSystemTester.cs	
@@ -3,18 +3,204 @@ using System.IO;
 using System.Text;
 using System.Collections;
 using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.U2D;
 using UnityEngine.TestTools;
+using NUnit.Framework;
 using YooAsset;
 
 public class EditorFileSystemTester : IPrebuildSetup, IPostBuildCleanup
 {
-    public void Setup()
+    private const string EFS_TEST_PACKAGE_ROOT_KEY = "EFS_TEST_PACKAGE_ROOT_KEY";
+    private const string EFS_RAW_PACKAGE_ROOT_KEY = "EFS_RAW_PACKAGE_ROOT_KEY";
+
+    void IPrebuildSetup.Setup()
+    {
+#if UNITY_EDITOR
+        // 构建TestPackage
+        {
+            var simulateParams = new EditorSimulateBuildParam(AssetBundleCollectorDefine.TestPackageName);
+            simulateParams.BuildPipelineName = "EditorSimulateBuildPipeline";
+            simulateParams.InvokeAssmeblyName = "YooAsset.Test.Editor";
+            simulateParams.InvokeClassFullName = "TestSimulateBuilder";
+            simulateParams.InvokeMethodName = "SimulateBuild";
+            var simulateResult = EditorSimulateModeHelper.SimulateBuild(simulateParams);
+            UnityEditor.EditorPrefs.SetString(EFS_TEST_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
+        }
+
+        // 构建RawPackage
+        {
+            var simulateParams = new EditorSimulateBuildParam(AssetBundleCollectorDefine.RawPackageName);
+            simulateParams.BuildPipelineName = "EditorSimulateBuildPipeline";
+            simulateParams.InvokeAssmeblyName = "YooAsset.Test.Editor";
+            simulateParams.InvokeClassFullName = "TestSimulateBuilder";
+            simulateParams.InvokeMethodName = "SimulateBuild";
+            var simulateResult = EditorSimulateModeHelper.SimulateBuild(simulateParams);
+            UnityEditor.EditorPrefs.SetString(EFS_RAW_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
+        }
+#endif
+    }
+    void IPostBuildCleanup.Cleanup()
     {
-        throw new NotImplementedException();
     }
 
-    public void Cleanup()
+    [UnityTest]
+    public IEnumerator DestroyPackage()
     {
-        throw new NotImplementedException();
+        // 销毁旧资源包
+        {
+            var package = YooAssets.GetPackage(AssetBundleCollectorDefine.TestPackageName);
+            var destroyOp = package.DestroyAsync();
+            yield return destroyOp;
+            if (destroyOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(destroyOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, destroyOp.Status);
+
+            bool result = YooAssets.RemovePackage(AssetBundleCollectorDefine.TestPackageName);
+            Assert.IsTrue(result);
+        }
+
+        // 销毁旧资源包
+        {
+            var package = YooAssets.GetPackage(AssetBundleCollectorDefine.RawPackageName);
+            var destroyOp = package.DestroyAsync();
+            yield return destroyOp;
+            if (destroyOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(destroyOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, destroyOp.Status);
+
+            bool result = YooAssets.RemovePackage(AssetBundleCollectorDefine.RawPackageName);
+            Assert.IsTrue(result);
+        }
+    }
+
+    [UnityTest]
+    public IEnumerator InitializePackage()
+    {
+        // 初始化TestPackage
+        {
+            string packageRoot = string.Empty;
+#if UNITY_EDITOR
+            packageRoot = UnityEditor.EditorPrefs.GetString(EFS_TEST_PACKAGE_ROOT_KEY);
+#endif
+            if (Directory.Exists(packageRoot) == false)
+                throw new Exception($"Not found package root : {packageRoot}");
+
+            var package = YooAssets.CreatePackage(AssetBundleCollectorDefine.TestPackageName);
+
+            // 初始化资源包
+            var initParams = new EditorSimulateModeParameters();
+            initParams.EditorFileSystemParameters = FileSystemParameters.CreateDefaultEditorFileSystemParameters(packageRoot);
+            var initializeOp = package.InitializeAsync(initParams);
+            yield return initializeOp;
+            if (initializeOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(initializeOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, initializeOp.Status);
+
+            // 请求资源版本
+            var requetVersionOp = package.RequestPackageVersionAsync();
+            yield return requetVersionOp;
+            if (requetVersionOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(requetVersionOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, requetVersionOp.Status);
+
+            // 更新资源清单
+            var updateManifestOp = package.UpdatePackageManifestAsync(requetVersionOp.PackageVersion);
+            yield return updateManifestOp;
+            if (updateManifestOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(updateManifestOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, updateManifestOp.Status);
+        }
+
+        // 初始化RawPackage
+        {
+            string packageRoot = string.Empty;
+#if UNITY_EDITOR
+            packageRoot = UnityEditor.EditorPrefs.GetString(EFS_RAW_PACKAGE_ROOT_KEY);
+#endif
+            if (Directory.Exists(packageRoot) == false)
+                throw new Exception($"Not found package root : {packageRoot}");
+
+            var package = YooAssets.CreatePackage(AssetBundleCollectorDefine.RawPackageName);
+
+            // 初始化资源包
+            var initParams = new EditorSimulateModeParameters();
+            initParams.EditorFileSystemParameters = FileSystemParameters.CreateDefaultEditorFileSystemParameters(packageRoot);
+            var initializeOp = package.InitializeAsync(initParams);
+            yield return initializeOp;
+            if (initializeOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(initializeOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, initializeOp.Status);
+
+            // 请求资源版本
+            var requetVersionOp = package.RequestPackageVersionAsync();
+            yield return requetVersionOp;
+            if (requetVersionOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(requetVersionOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, requetVersionOp.Status);
+
+            // 更新资源清单
+            var updateManifestOp = package.UpdatePackageManifestAsync(requetVersionOp.PackageVersion);
+            yield return updateManifestOp;
+            if (updateManifestOp.Status != EOperationStatus.Succeed)
+                Debug.LogError(updateManifestOp.Error);
+            Assert.AreEqual(EOperationStatus.Succeed, updateManifestOp.Status);
+        }
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadAudio()
+    {
+        var tester = new TestLoadAudio();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadImage()
+    {
+        var tester = new TestLoadImage();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadPrefab()
+    {
+        var tester = new TestLoadPrefab();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadScene()
+    {
+        var tester = new TestLoadScene();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadScriptableObject()
+    {
+        var tester = new TestLoadScriptableObject();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadSpriteAtlas()
+    {
+        var tester = new TestLoadSpriteAtlas();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadRawFile()
+    {
+        var tester = new TestLoadRawFile();
+        yield return tester.RuntimeTester();
+    }
+
+    [UnityTest]
+    public IEnumerator TestLoadVideo()
+    {
+        var tester = new TestLoadVideo();
+        yield return tester.RuntimeTester();
     }
 }
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadAudio.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadAudio.cs
index 94c2f6b6..5c513e28 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadAudio.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadAudio.cs	
@@ -11,13 +11,12 @@ using YooAsset;
 
 public class TestLoadAudio
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("TestPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.TestPackageName);
         Assert.IsNotNull(package);
 
-        // 音乐
+        // 音乐异步加载
         {
             var assetHandle = package.LoadAssetAsync<AudioClip>("music_a");
             yield return assetHandle;
@@ -27,7 +26,7 @@ public class TestLoadAudio
             Assert.IsNotNull(audioClip);
         }
 
-        // 音效
+        // 音效异步加载
         {
             var assetHandle = package.LoadAssetAsync<AudioClip>("sound_a");
             yield return assetHandle;
@@ -36,5 +35,15 @@ public class TestLoadAudio
             var audioClip = assetHandle.AssetObject as AudioClip;
             Assert.IsNotNull(audioClip);
         }
+
+        // 音效同步加载
+        {
+            var assetHandle = package.LoadAssetSync<AudioClip>("sound_b");
+            yield return assetHandle;
+            Assert.AreEqual(EOperationStatus.Succeed, assetHandle.Status);
+
+            var audioClip = assetHandle.AssetObject as AudioClip;
+            Assert.IsNotNull(audioClip);
+        }
     }
 }
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadImage.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadImage.cs
index 9433632d..f3ee3684 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadImage.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadImage.cs	
@@ -11,20 +11,35 @@ using YooAsset;
 
 public class TestLoadImage
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("TestPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.TestPackageName);
         Assert.IsNotNull(package);
 
-        var subAssetsHandle = package.LoadSubAssetsAsync<Sprite>("image_a");
-        yield return subAssetsHandle;
-        Assert.AreEqual(EOperationStatus.Succeed, subAssetsHandle.Status);
+        // 异步加载子对象
+        {
+            var subAssetsHandle = package.LoadSubAssetsAsync<Sprite>("image_a");
+            yield return subAssetsHandle;
+            Assert.AreEqual(EOperationStatus.Succeed, subAssetsHandle.Status);
 
-        var subAssetObjects = subAssetsHandle.SubAssetObjects;
-        Assert.IsNotNull(subAssetObjects);
+            var subAssetObjects = subAssetsHandle.SubAssetObjects;
+            Assert.IsNotNull(subAssetObjects);
 
-        int count = subAssetObjects.Count;
-        Assert.AreEqual(count, 3);
+            int count = subAssetObjects.Count;
+            Assert.AreEqual(count, 3);
+        }
+
+        // 同步加载子对象
+        {
+            var subAssetsHandle = package.LoadSubAssetsSync<Sprite>("image_b");
+            yield return subAssetsHandle;
+            Assert.AreEqual(EOperationStatus.Succeed, subAssetsHandle.Status);
+
+            var subAssetObjects = subAssetsHandle.SubAssetObjects;
+            Assert.IsNotNull(subAssetObjects);
+
+            int count = subAssetObjects.Count;
+            Assert.AreEqual(count, 3);
+        }
     }
 }
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadPrefab.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadPrefab.cs
index 289feebd..ad8ebe12 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadPrefab.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadPrefab.cs	
@@ -11,13 +11,12 @@ using YooAsset;
 
 public class TestLoadPrefab
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("TestPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.TestPackageName);
         Assert.IsNotNull(package);
 
-        // 加载所有预制体
+        // 异步加载所有预制体
         {
             var allAssetsHandle = package.LoadAllAssetsAsync<GameObject>("prefab_a");
             yield return allAssetsHandle;
@@ -30,9 +29,24 @@ public class TestLoadPrefab
             Assert.AreEqual(count, 3);
         }
 
-        // 加载指定预制体
+        // 异步加载指定预制体
         {
-            var assetsHandle = package.LoadAssetAsync<GameObject>("prefab_a");
+            var assetsHandle = package.LoadAssetAsync<GameObject>("prefab_b");
+            yield return assetsHandle;
+            Assert.AreEqual(EOperationStatus.Succeed, assetsHandle.Status);
+            Assert.IsNotNull(assetsHandle.AssetObject);
+
+            var instantiateOp = assetsHandle.InstantiateAsync();
+            yield return instantiateOp;
+            Assert.AreEqual(EOperationStatus.Succeed, instantiateOp.Status);
+
+            Assert.IsNotNull(instantiateOp.Result);
+            TestLogger.Log(this, instantiateOp.Result.name);
+        }
+
+        // 同步加载指定预制体
+        {
+            var assetsHandle = package.LoadAssetSync<GameObject>("prefab_c");
             yield return assetsHandle;
             Assert.AreEqual(EOperationStatus.Succeed, assetsHandle.Status);
             Assert.IsNotNull(assetsHandle.AssetObject);
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadRawFile.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadRawFile.cs
index 8ce3bafb..8770d432 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadRawFile.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadRawFile.cs	
@@ -11,10 +11,9 @@ using YooAsset;
 
 public class TestLoadRawFile
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("RawPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.RawPackageName);
         Assert.IsNotNull(package);
 
         // 测试异步加载
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScene.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScene.cs
index 8529d09a..d8e42eee 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScene.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScene.cs	
@@ -12,13 +12,12 @@ using YooAsset;
 
 public class TestLoadScene
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("TestPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.TestPackageName);
         Assert.IsNotNull(package);
 
-        // 主场景
+        // 异步加载主场景
         {
             var sceneHandle = package.LoadSceneAsync("scene_a", LoadSceneMode.Single);
             yield return sceneHandle;
@@ -28,7 +27,7 @@ public class TestLoadScene
             Assert.IsNotNull(scene);
         }
 
-        // 附加场景
+        // 异步加载附加场景
         yield return new WaitForSeconds(1f);
         {
             var sceneHandle = package.LoadSceneAsync("scene_b", LoadSceneMode.Additive);
@@ -39,15 +38,21 @@ public class TestLoadScene
             Assert.IsNotNull(scene);
         }
 
-        // 主场景
+        // 异步加载附加场景
         yield return new WaitForSeconds(1f);
         {
-            var sceneHandle = package.LoadSceneAsync("scene_c", LoadSceneMode.Single);
+            var sceneHandle = package.LoadSceneSync("scene_c", LoadSceneMode.Additive);
             yield return sceneHandle;
             Assert.AreEqual(EOperationStatus.Succeed, sceneHandle.Status);
 
             var scene = sceneHandle.SceneObject;
             Assert.IsNotNull(scene);
+
+            // 异步销毁附加场景
+            yield return new WaitForSeconds(1f);
+            var unloadSceneOp = sceneHandle.UnloadAsync();
+            yield return unloadSceneOp;
+            Assert.AreEqual(EOperationStatus.Succeed, unloadSceneOp.Status);
         }
     }
 }
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScriptableObject.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScriptableObject.cs
index 2ac90106..475f24b3 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScriptableObject.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadScriptableObject.cs	
@@ -11,18 +11,31 @@ using YooAsset;
 
 public class TestLoadScriptableObject
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("TestPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.TestPackageName);
         Assert.IsNotNull(package);
 
-        var assetHandle = package.LoadAssetAsync("game_config");
-        yield return assetHandle;
-        Assert.AreEqual(EOperationStatus.Succeed, assetHandle.Status);
+        // 异步加载序列化对象
+        {
+            var assetHandle = package.LoadAssetAsync("config_a");
+            yield return assetHandle;
+            Assert.AreEqual(EOperationStatus.Succeed, assetHandle.Status);
 
-        var testScriptableObject = assetHandle.AssetObject as TestScriptableObject;
-        Assert.IsNotNull(testScriptableObject);
-        TestLogger.Log(this, testScriptableObject.ConfigName);
+            var testScriptableObject = assetHandle.AssetObject as TestScriptableObject;
+            Assert.IsNotNull(testScriptableObject);
+            TestLogger.Log(this, testScriptableObject.ConfigName);
+        }
+
+        // 同步加载序列化对象
+        {
+            var assetHandle = package.LoadAssetSync("config_b");
+            yield return assetHandle;
+            Assert.AreEqual(EOperationStatus.Succeed, assetHandle.Status);
+
+            var testScriptableObject = assetHandle.AssetObject as TestScriptableObject;
+            Assert.IsNotNull(testScriptableObject);
+            TestLogger.Log(this, testScriptableObject.ConfigName);
+        }
     }
 }
\ No newline at end of file
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadSpriteAtlas.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadSpriteAtlas.cs
index f4433ca0..a1142ea1 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadSpriteAtlas.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadSpriteAtlas.cs	
@@ -11,10 +11,9 @@ using YooAsset;
 
 public class TestLoadSpriteAtlas
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("TestPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.TestPackageName);
         Assert.IsNotNull(package);
 
         var assetHandle = package.LoadAssetAsync<SpriteAtlas>("atlas_icon");
diff --git a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadVideo.cs b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadVideo.cs
index 0a3133ef..807d02bc 100644
--- a/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadVideo.cs	
+++ b/Assets/YooAsset/Samples~/Test Sample/Runtime/TestLoadVideo.cs	
@@ -12,10 +12,9 @@ using UnityEngine.Video;
 
 public class TestLoadVideo
 {
-    [UnityTest]
     public IEnumerator RuntimeTester()
     {
-        ResourcePackage package = YooAssets.GetPackage("RawPackage");
+        ResourcePackage package = YooAssets.GetPackage(AssetBundleCollectorDefine.RawPackageName);
         Assert.IsNotNull(package);
 
         var rawFileHandle = package.LoadRawFileAsync("video_logo");
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/Image/image_b.png b/Assets/YooAsset/Samples~/Test Sample/TestRes/Image/image_b.png
new file mode 100644
index 00000000..7268960f
Binary files /dev/null and b/Assets/YooAsset/Samples~/Test Sample/TestRes/Image/image_b.png differ
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/Image/image_b.png.meta b/Assets/YooAsset/Samples~/Test Sample/TestRes/Image/image_b.png.meta
new file mode 100644
index 00000000..bdf87778
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/Image/image_b.png.meta	
@@ -0,0 +1,219 @@
+fileFormatVersion: 2
+guid: 837b56496d5027c41a3214fcbfb6ae2f
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 13
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 2
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: WebGL
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: image_a_0
+      rect:
+        serializedVersion: 2
+        x: 21
+        y: 16
+        width: 471
+        height: 473
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 91146573e1a4d014a806b24fa9cb6f0d
+      internalID: -1425660917
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    - serializedVersion: 2
+      name: image_a_1
+      rect:
+        serializedVersion: 2
+        x: 526
+        y: 12
+        width: 483
+        height: 480
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: a1731b0da909b874186c63cdcaacdf44
+      internalID: 1768656825
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    - serializedVersion: 2
+      name: image_a_2
+      rect:
+        serializedVersion: 2
+        x: 1032
+        y: 9
+        width: 484
+        height: 486
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 539d18f1e9de1d748adba679160d2560
+      internalID: -1756424530
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 9548a159e49be6d46a487f932e9ced9a
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable:
+      image_a_0: -1425660917
+      image_a_1: 1768656825
+      image_a_2: -1756424530
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_b.unity b/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_b.unity
index fbeab51e..6ed7bf61 100644
--- a/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_b.unity	
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_b.unity	
@@ -315,7 +315,7 @@ Transform:
   m_GameObject: {fileID: 1622835240}
   serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: -1.5, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_c.unity b/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_c.unity
index 65761278..8203e320 100644
--- a/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_c.unity	
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/Scene/scene_c.unity	
@@ -317,7 +317,7 @@ Transform:
   m_GameObject: {fileID: 1590071827}
   serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 1.5, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/game_config.asset b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_a.asset
similarity index 90%
rename from Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/game_config.asset
rename to Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_a.asset
index 8daa5243..c47eacdd 100644
--- a/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/game_config.asset	
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_a.asset	
@@ -10,6 +10,6 @@ MonoBehaviour:
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 11500000, guid: 11ddf12cbeb412347957744c69cfc3b6, type: 3}
-  m_Name: game_config
+  m_Name: config_a
   m_EditorClassIdentifier: 
-  ConfigName: yoo
+  ConfigName: config a
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/game_config.asset.meta b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_a.asset.meta
similarity index 100%
rename from Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/game_config.asset.meta
rename to Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_a.asset.meta
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_b.asset b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_b.asset
new file mode 100644
index 00000000..ae40949f
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_b.asset	
@@ -0,0 +1,15 @@
+%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: 11ddf12cbeb412347957744c69cfc3b6, type: 3}
+  m_Name: config_b
+  m_EditorClassIdentifier: 
+  ConfigName: config b
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_b.asset.meta b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_b.asset.meta
new file mode 100644
index 00000000..782a9f99
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_b.asset.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f028d1ae726a7154fb9893e0171af947
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_c.asset b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_c.asset
new file mode 100644
index 00000000..bd0eabf5
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_c.asset	
@@ -0,0 +1,15 @@
+%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: 11ddf12cbeb412347957744c69cfc3b6, type: 3}
+  m_Name: config_c
+  m_EditorClassIdentifier: 
+  ConfigName: config c
diff --git a/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_c.asset.meta b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_c.asset.meta
new file mode 100644
index 00000000..a40ec65f
--- /dev/null
+++ b/Assets/YooAsset/Samples~/Test Sample/TestRes/ScriptableObject/config_c.asset.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b389b845dd8a30b47b2b36f407447e88
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: