From 9b27f9e6fb274b15e02008b84356772b86ff6c80 Mon Sep 17 00:00:00 2001 From: Masatake Iwasaki <78918084+kochounoyume@users.noreply.github.com> Date: Sun, 12 Jul 2026 05:54:44 +0900 Subject: [PATCH 1/3] test: add ObjectReference test environment and tests --- .../Assets/AddressableAssetsData.meta | 8 - .../AddressableAssetSettings.asset | 115 ------ .../AddressableAssetSettings.asset.meta | 8 - .../AssetGroupTemplates.meta | 8 - .../AssetGroupTemplates/Packed Assets.asset | 78 ---- .../Packed Assets.asset.meta | 8 - .../AddressableAssetsData/AssetGroups.meta | 8 - .../AssetGroups/Default Local Group.asset | 33 -- .../Default Local Group.asset.meta | 8 - .../AssetGroups/Schemas.meta | 8 - ... Local Group_BundledAssetGroupSchema.asset | 47 --- ...l Group_BundledAssetGroupSchema.asset.meta | 8 - ...Local Group_ContentUpdateGroupSchema.asset | 16 - ... Group_ContentUpdateGroupSchema.asset.meta | 8 - .../AddressableAssetsData/DataBuilders.meta | 8 - .../DataBuilders/BuildScriptFastMode.asset | 20 - .../BuildScriptFastMode.asset.meta | 8 - .../DataBuilders/BuildScriptPackedMode.asset | 20 - .../BuildScriptPackedMode.asset.meta | 8 - .../BuildScriptPackedPlayMode.asset | 20 - .../BuildScriptPackedPlayMode.asset.meta | 8 - .../AddressableAssetsData/DefaultObject.asset | 15 - .../DefaultObject.asset.meta | 8 - src/ObjectReference.Unity/Assets/Cube.prefab | 110 ----- .../Assets/Cube.prefab.meta | 7 - .../Assets/New Material.mat | 84 ---- .../Assets/New Material.mat.meta | 8 - .../Tests/Runtime/DummyAddressableData.asset | 39 -- .../Runtime/DummyAddressableData.asset.meta | 8 - .../Assets/Tests/Runtime/DummyData.asset | 34 -- .../Assets/Tests/Runtime/DummyData.asset.meta | 8 - .../Assets/Tests/Runtime/DummyEmptyData.asset | 23 -- .../Tests/Runtime/DummyEmptyData.asset.meta | 8 - .../Runtime/DummyNullSerializableData.asset | 29 -- .../DummyNullSerializableData.asset.meta | 8 - .../Tests/Runtime/DummyObjectReferenceData.cs | 71 ---- .../Tests/Runtime/ObjectReferenceTests.cs | 386 ------------------ .../Tests.meta | 0 .../Tests/Runtime.meta | 0 .../ObjectReference.Runtime.Tests.asmdef | 2 +- .../ObjectReference.Runtime.Tests.asmdef.meta | 0 .../Runtime/ObjectReferenceTestEnvironment.cs | 173 ++++++++ .../ObjectReferenceTestEnvironment.cs.meta} | 2 +- .../Tests/Runtime/ObjectReferenceTests.cs | 269 ++++++++++++ .../Runtime/ObjectReferenceTests.cs.meta | 0 .../Tests/Runtime/ToCoroutineEnumerator.cs | 42 +- .../Runtime/ToCoroutineEnumerator.cs.meta | 0 .../Packages/manifest.json | 5 +- .../Settings.json | 2 +- 49 files changed, 468 insertions(+), 1326 deletions(-) delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset delete mode 100644 src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/Cube.prefab delete mode 100644 src/ObjectReference.Unity/Assets/Cube.prefab.meta delete mode 100644 src/ObjectReference.Unity/Assets/New Material.mat delete mode 100644 src/ObjectReference.Unity/Assets/New Material.mat.meta delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset.meta delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/DummyObjectReferenceData.cs delete mode 100644 src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReferenceTests.cs rename src/ObjectReference.Unity/{Assets => Packages/jp.andantetribe.objectreference}/Tests.meta (100%) rename src/ObjectReference.Unity/{Assets => Packages/jp.andantetribe.objectreference}/Tests/Runtime.meta (100%) rename src/ObjectReference.Unity/{Assets => Packages/jp.andantetribe.objectreference}/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef (99%) rename src/ObjectReference.Unity/{Assets => Packages/jp.andantetribe.objectreference}/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef.meta (100%) create mode 100644 src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs rename src/ObjectReference.Unity/{Assets/Tests/Runtime/DummyObjectReferenceData.cs.meta => Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs.meta} (83%) create mode 100644 src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTests.cs rename src/ObjectReference.Unity/{Assets => Packages/jp.andantetribe.objectreference}/Tests/Runtime/ObjectReferenceTests.cs.meta (100%) rename src/ObjectReference.Unity/{Assets => Packages/jp.andantetribe.objectreference}/Tests/Runtime/ToCoroutineEnumerator.cs (89%) rename src/ObjectReference.Unity/{Assets => Packages/jp.andantetribe.objectreference}/Tests/Runtime/ToCoroutineEnumerator.cs.meta (100%) diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData.meta deleted file mode 100644 index 8754cc8..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 062a13fdbbc914848bd5ad447a6744cc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset deleted file mode 100644 index a4e2a6a..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset +++ /dev/null @@ -1,115 +0,0 @@ -%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: 468a46d0ae32c3544b7d98094e6448a9, type: 3} - m_Name: AddressableAssetSettings - m_EditorClassIdentifier: - m_DefaultGroup: 0d4ef0b78ca49d54899f0c79f3ff91f7 - m_currentHash: - serializedVersion: 2 - Hash: bd02d469c0fed3f96853e4d6c996ccda - m_OptimizeCatalogSize: 0 - m_BuildRemoteCatalog: 0 - m_CatalogRequestsTimeout: 0 - m_DisableCatalogUpdateOnStart: 0 - m_InternalIdNamingMode: 0 - m_InternalBundleIdMode: 1 - m_AssetLoadMode: 0 - m_BundledAssetProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider - m_AssetBundleProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider - m_IgnoreUnsupportedFilesInBuild: 0 - m_UniqueBundleIds: 0 - m_EnableJsonCatalog: 0 - m_NonRecursiveBuilding: 1 - m_AllowNestedBundleFolders: 0 - m_CCDEnabled: 0 - m_maxConcurrentWebRequests: 3 - m_UseUWRForLocalBundles: 0 - m_BundleTimeout: 0 - m_BundleRetryCount: 0 - m_BundleRedirectLimit: -1 - m_SharedBundleSettings: 0 - m_SharedBundleSettingsCustomGroupIndex: 0 - m_ContiguousBundles: 1 - m_StripUnityVersionFromBundleBuild: 0 - m_DisableVisibleSubAssetRepresentations: 0 - m_BuiltInBundleNaming: 0 - mBuiltInBundleCustomNaming: - m_MonoScriptBundleNaming: 0 - m_CheckForContentUpdateRestrictionsOption: 0 - m_MonoScriptBundleCustomNaming: - m_RemoteCatalogBuildPath: - m_Id: - m_RemoteCatalogLoadPath: - m_Id: - m_ContentStateBuildPathProfileVariableName: - m_CustomContentStateBuildPath: - m_ContentStateBuildPath: - m_BuildAddressablesWithPlayerBuild: 0 - m_overridePlayerVersion: '[UnityEditor.PlayerSettings.bundleVersion]' - m_GroupAssets: - - {fileID: 11400000, guid: 89d61b4195a95f24481889f4a683f3c4, type: 2} - m_BuildSettings: - m_LogResourceManagerExceptions: 1 - m_BundleBuildPath: Temp/com.unity.addressables/AssetBundles - m_ProfileSettings: - m_Profiles: - - m_InheritedParent: - m_Id: f6c735484ecff3545a36a807ca8f99f4 - m_ProfileName: Default - m_Values: - - m_Id: 082a388a4b0195e4b9777d923145e3da - m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]' - - m_Id: 9cdbde7e85ebe3b4ca1c1aff5af70360 - m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]' - - m_Id: cb0f4b93e2a90d248b16522a350b0590 - m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]' - - m_Id: ceaea8f8a144afd43a35832c4d4d186e - m_Value: - - m_Id: d46cbf17e5274d644aad5d1e598dd3a9 - m_Value: 'ServerData/[BuildTarget]' - m_ProfileEntryNames: - - m_Id: 082a388a4b0195e4b9777d923145e3da - m_Name: Local.BuildPath - m_InlineUsage: 0 - - m_Id: 9cdbde7e85ebe3b4ca1c1aff5af70360 - m_Name: Local.LoadPath - m_InlineUsage: 0 - - m_Id: cb0f4b93e2a90d248b16522a350b0590 - m_Name: BuildTarget - m_InlineUsage: 0 - - m_Id: ceaea8f8a144afd43a35832c4d4d186e - m_Name: Remote.LoadPath - m_InlineUsage: 0 - - m_Id: d46cbf17e5274d644aad5d1e598dd3a9 - m_Name: Remote.BuildPath - m_InlineUsage: 0 - m_ProfileVersion: 1 - m_LabelTable: - m_LabelNames: - - default - m_SchemaTemplates: [] - m_GroupTemplateObjects: - - {fileID: 11400000, guid: e34a42c0962f0054f8dd4b096e607b59, type: 2} - m_InitializationObjects: [] - m_CertificateHandlerType: - m_AssemblyName: - m_ClassName: - m_ActivePlayerDataBuilderIndex: 2 - m_DataBuilders: - - {fileID: 11400000, guid: c62843fe9e9d726469b559897dce8765, type: 2} - - {fileID: 11400000, guid: 7f65190c3abfd8141900728fa464ea13, type: 2} - - {fileID: 11400000, guid: 722d062c3a9481c428273f97fc32d2ab, type: 2} - m_ActiveProfileId: f6c735484ecff3545a36a807ca8f99f4 diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta deleted file mode 100644 index 3c77164..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 98a5a1939671a8d4fbbe8135c6004279 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates.meta deleted file mode 100644 index 4708bfc..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fe71838cd757bfc4ba79963dffadbaec -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset deleted file mode 100644 index 763b290..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset +++ /dev/null @@ -1,78 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &-4987616731795561865 -MonoBehaviour: - m_ObjectHideFlags: 1 - 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: e5d17a21594effb4e9591490b009e7aa, type: 3} - m_Name: BundledAssetGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 0} - m_InternalBundleIdMode: 1 - m_Compression: 1 - m_IncludeAddressInCatalog: 1 - m_IncludeGUIDInCatalog: 1 - m_IncludeLabelsInCatalog: 1 - m_InternalIdNamingMode: 0 - m_CacheClearBehavior: 0 - m_IncludeInBuild: 1 - m_BundledAssetProviderType: - m_AssemblyName: - m_ClassName: - m_ForceUniqueProvider: 0 - m_UseAssetBundleCache: 1 - m_UseAssetBundleCrc: 1 - m_UseAssetBundleCrcForCachedBundles: 1 - m_UseUWRForLocalBundles: 0 - m_Timeout: 0 - m_ChunkedTransfer: 0 - m_RedirectLimit: -1 - m_RetryCount: 0 - m_BuildPath: - m_Id: - m_LoadPath: - m_Id: - m_BundleMode: 0 - m_AssetBundleProviderType: - m_AssemblyName: - m_ClassName: - m_UseDefaultSchemaSettings: 0 - m_SelectedPathPairIndex: 0 - m_BundleNaming: 0 - m_AssetLoadMode: 0 ---- !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: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3} - m_Name: Packed Assets - m_EditorClassIdentifier: - m_SchemaObjects: - - {fileID: -4987616731795561865} - - {fileID: 2521342570903341783} - m_Description: Pack assets into asset bundles. - m_Settings: {fileID: 11400000, guid: 98a5a1939671a8d4fbbe8135c6004279, type: 2} ---- !u!114 &2521342570903341783 -MonoBehaviour: - m_ObjectHideFlags: 1 - 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: 5834b5087d578d24c926ce20cd31e6d6, type: 3} - m_Name: ContentUpdateGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 0} - m_StaticContent: 0 diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta deleted file mode 100644 index 3647c79..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e34a42c0962f0054f8dd4b096e607b59 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups.meta deleted file mode 100644 index 36c75b9..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 579bad15242f1d04e9381e89764b900d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset deleted file mode 100644 index 1085fbd..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ /dev/null @@ -1,33 +0,0 @@ -%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: bbb281ee3bf0b054c82ac2347e9e782c, type: 3} - m_Name: Default Local Group - m_EditorClassIdentifier: - m_GroupName: Default Local Group - m_GUID: 0d4ef0b78ca49d54899f0c79f3ff91f7 - m_SerializeEntries: - - m_GUID: 0f000f9de0c56ed438ed837247e4bacb - m_Address: Assets/New Material.mat - m_ReadOnly: 0 - m_SerializedLabels: [] - FlaggedDuringContentUpdateRestriction: 0 - - m_GUID: 8df65f68cf0539e438a06681e8485f72 - m_Address: Assets/Cube.prefab - m_ReadOnly: 0 - m_SerializedLabels: [] - FlaggedDuringContentUpdateRestriction: 0 - m_ReadOnly: 0 - m_Settings: {fileID: 11400000, guid: 98a5a1939671a8d4fbbe8135c6004279, type: 2} - m_SchemaSet: - m_Schemas: - - {fileID: 11400000, guid: 6e8687e32c7caf147aff2a4578bb86c9, type: 2} - - {fileID: 11400000, guid: 779c6e3e4685008428d404de7462fef0, type: 2} diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta deleted file mode 100644 index 27c059c..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 89d61b4195a95f24481889f4a683f3c4 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas.meta deleted file mode 100644 index 72a4937..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7d13880dbcf086249a1a3deda5879fe2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset deleted file mode 100644 index aab433d..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset +++ /dev/null @@ -1,47 +0,0 @@ -%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: e5d17a21594effb4e9591490b009e7aa, type: 3} - m_Name: Default Local Group_BundledAssetGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 11400000, guid: 89d61b4195a95f24481889f4a683f3c4, type: 2} - m_InternalBundleIdMode: 1 - m_Compression: 1 - m_IncludeAddressInCatalog: 1 - m_IncludeGUIDInCatalog: 1 - m_IncludeLabelsInCatalog: 1 - m_InternalIdNamingMode: 0 - m_CacheClearBehavior: 0 - m_IncludeInBuild: 1 - m_BundledAssetProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider - m_ForceUniqueProvider: 0 - m_UseAssetBundleCache: 1 - m_UseAssetBundleCrc: 1 - m_UseAssetBundleCrcForCachedBundles: 1 - m_UseUWRForLocalBundles: 0 - m_Timeout: 0 - m_ChunkedTransfer: 0 - m_RedirectLimit: -1 - m_RetryCount: 0 - m_BuildPath: - m_Id: 082a388a4b0195e4b9777d923145e3da - m_LoadPath: - m_Id: 9cdbde7e85ebe3b4ca1c1aff5af70360 - m_BundleMode: 0 - m_AssetBundleProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider - m_UseDefaultSchemaSettings: 0 - m_SelectedPathPairIndex: 0 - m_BundleNaming: 0 - m_AssetLoadMode: 0 diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta deleted file mode 100644 index 62b6c24..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6e8687e32c7caf147aff2a4578bb86c9 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset deleted file mode 100644 index 7bb295a..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset +++ /dev/null @@ -1,16 +0,0 @@ -%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: 5834b5087d578d24c926ce20cd31e6d6, type: 3} - m_Name: Default Local Group_ContentUpdateGroupSchema - m_EditorClassIdentifier: - m_Group: {fileID: 11400000, guid: 89d61b4195a95f24481889f4a683f3c4, type: 2} - m_StaticContent: 0 diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta deleted file mode 100644 index be0134f..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 779c6e3e4685008428d404de7462fef0 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders.meta deleted file mode 100644 index f1d3bb3..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 811372585cdf51a49a6a5c14cfcd8873 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset deleted file mode 100644 index 50d30dc..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset +++ /dev/null @@ -1,20 +0,0 @@ -%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: 88d21199f5d473f4db36845f2318f180, type: 3} - m_Name: BuildScriptFastMode - m_EditorClassIdentifier: - instanceProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider - sceneProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta deleted file mode 100644 index 65a1868..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c62843fe9e9d726469b559897dce8765 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset deleted file mode 100644 index ec875f9..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset +++ /dev/null @@ -1,20 +0,0 @@ -%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: 3e2e0ffa088c91d41a086d0b8cb16bdc, type: 3} - m_Name: BuildScriptPackedMode - m_EditorClassIdentifier: - instanceProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider - sceneProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta deleted file mode 100644 index 34cf9ce..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 722d062c3a9481c428273f97fc32d2ab -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset deleted file mode 100644 index 7628845..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset +++ /dev/null @@ -1,20 +0,0 @@ -%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: ad8c280d42ee0ed41a27db23b43dd2bf, type: 3} - m_Name: BuildScriptPackedPlayMode - m_EditorClassIdentifier: - instanceProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider - sceneProviderType: - m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta deleted file mode 100644 index b2820d5..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7f65190c3abfd8141900728fa464ea13 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset deleted file mode 100644 index 6e8ef50..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset +++ /dev/null @@ -1,15 +0,0 @@ -%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: 3a189bb168d8d90478a09ea08c2f3d72, type: 3} - m_Name: DefaultObject - m_EditorClassIdentifier: - m_AddressableAssetSettingsGuid: 98a5a1939671a8d4fbbe8135c6004279 diff --git a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset.meta b/src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset.meta deleted file mode 100644 index e54e0a0..0000000 --- a/src/ObjectReference.Unity/Assets/AddressableAssetsData/DefaultObject.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0857b63275614914c9589c72dc704da3 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/Cube.prefab b/src/ObjectReference.Unity/Assets/Cube.prefab deleted file mode 100644 index e41782d..0000000 --- a/src/ObjectReference.Unity/Assets/Cube.prefab +++ /dev/null @@ -1,110 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &3468762884785164843 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8157051091038962413} - - component: {fileID: 8373085222602048642} - - component: {fileID: 6002919554600064873} - - component: {fileID: 6779487186488032377} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8157051091038962413 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3468762884785164843} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - 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!33 &8373085222602048642 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3468762884785164843} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6002919554600064873 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3468762884785164843} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &6779487186488032377 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3468762884785164843} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} diff --git a/src/ObjectReference.Unity/Assets/Cube.prefab.meta b/src/ObjectReference.Unity/Assets/Cube.prefab.meta deleted file mode 100644 index 4bc0b5a..0000000 --- a/src/ObjectReference.Unity/Assets/Cube.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8df65f68cf0539e438a06681e8485f72 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/New Material.mat b/src/ObjectReference.Unity/Assets/New Material.mat deleted file mode 100644 index bc8d1e2..0000000 --- a/src/ObjectReference.Unity/Assets/New Material.mat +++ /dev/null @@ -1,84 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: New Material - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Ints: [] - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 1 - m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] - m_AllowLocking: 1 diff --git a/src/ObjectReference.Unity/Assets/New Material.mat.meta b/src/ObjectReference.Unity/Assets/New Material.mat.meta deleted file mode 100644 index 2c2d51b..0000000 --- a/src/ObjectReference.Unity/Assets/New Material.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0f000f9de0c56ed438ed837247e4bacb -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 2100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset deleted file mode 100644 index a772401..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset +++ /dev/null @@ -1,39 +0,0 @@ -%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: e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0, type: 3} - m_Name: DummyAddressableData - m_EditorClassIdentifier: ObjectReference.Runtime.Tests::ObjectReference.Tests.DummyObjectReferenceData - _gameObjectReference: - rid: 5430746528934527075 - _materialReference: - rid: 5430746528934527076 - references: - version: 2 - RefIds: - - rid: 5430746528934527075 - type: {class: 'SerializableAddressableObjectReference`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: ObjectReference, asm: ObjectReference} - data: - _value: - m_AssetGUID: 8df65f68cf0539e438a06681e8485f72 - m_SubObjectName: - m_SubObjectType: - m_SubObjectGUID: - m_EditorAssetChanged: 0 - - rid: 5430746528934527076 - type: {class: 'SerializableAddressableObjectReference`1[[UnityEngine.Material, UnityEngine.CoreModule]]', ns: ObjectReference, asm: ObjectReference} - data: - _value: - m_AssetGUID: 0f000f9de0c56ed438ed837247e4bacb - m_SubObjectName: - m_SubObjectType: - m_SubObjectGUID: - m_EditorAssetChanged: 0 diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset.meta b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset.meta deleted file mode 100644 index e217c36..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyAddressableData.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f4f2fd6444124243920d89b2d9bb388a -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset deleted file mode 100644 index ca161d7..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset +++ /dev/null @@ -1,34 +0,0 @@ -%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: e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0, type: 3} - m_Name: DummyData - m_EditorClassIdentifier: ObjectReference.Runtime.Tests::ObjectReference.Tests.DummyObjectReferenceData - _gameObjectReference: - rid: 5430746528934527073 - _materialReference: - rid: 5430746528934527074 - references: - version: 2 - RefIds: - - rid: 5430746528934527073 - type: {class: 'SerializableAddressableObjectReference`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: ObjectReference, asm: ObjectReference} - data: - _value: - m_AssetGUID: 8df65f68cf0539e438a06681e8485f72 - m_SubObjectName: - m_SubObjectType: - m_SubObjectGUID: - m_EditorAssetChanged: 0 - - rid: 5430746528934527074 - type: {class: 'SerializableObjectReference`1[[UnityEngine.Material, UnityEngine.CoreModule]]', ns: ObjectReference, asm: ObjectReference} - data: - _value: {fileID: 2100000, guid: 0f000f9de0c56ed438ed837247e4bacb, type: 2} diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset.meta b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset.meta deleted file mode 100644 index 6eeb543..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyData.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 56ae12910fa654ab19fe7a23ae903b40 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset deleted file mode 100644 index dce1e00..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset +++ /dev/null @@ -1,23 +0,0 @@ -%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: e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0, type: 3} - m_Name: DummyEmptyData - m_EditorClassIdentifier: ObjectReference.Runtime.Tests::ObjectReference.Tests.DummyObjectReferenceData - _gameObjectReference: - rid: -2 - _materialReference: - rid: -2 - references: - version: 2 - RefIds: - - rid: -2 - type: {class: , ns: , asm: } diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset.meta b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset.meta deleted file mode 100644 index 1abb4bd..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyEmptyData.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8edcb537db034f6f8d541450111b4dfe -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset deleted file mode 100644 index aef6cce..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset +++ /dev/null @@ -1,29 +0,0 @@ -%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: e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0, type: 3} - m_Name: DummyNullSerializableData - m_EditorClassIdentifier: ObjectReference.Runtime.Tests::ObjectReference.Tests.DummyObjectReferenceData - _gameObjectReference: - rid: 5430746528934527079 - _materialReference: - rid: 5430746528934527080 - references: - version: 2 - RefIds: - - rid: 5430746528934527079 - type: {class: 'SerializableObjectReference`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: ObjectReference, asm: ObjectReference} - data: - _value: {fileID: 0} - - rid: 5430746528934527080 - type: {class: 'SerializableObjectReference`1[[UnityEngine.Material, UnityEngine.CoreModule]]', ns: ObjectReference, asm: ObjectReference} - data: - _value: {fileID: 0} diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset.meta b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset.meta deleted file mode 100644 index 8f7d392..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyNullSerializableData.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyObjectReferenceData.cs b/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyObjectReferenceData.cs deleted file mode 100644 index babfee9..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyObjectReferenceData.cs +++ /dev/null @@ -1,71 +0,0 @@ -#nullable enable - -using System.Collections.Generic; -using NUnit.Framework; -using UnityEngine; -using UnityEngine.TestTools; - -namespace ObjectReference.Tests -{ - [ExcludeFromCoverage] - [Ignore("This is a dummy class for testing purposes. It should not be included in the test suite.")] - public class DummyObjectReferenceData : ScriptableObject - { - [SerializeReference] - private IObjectReference _gameObjectReference = null!; - - [SerializeReference] - private IObjectReference _materialReference = null!; - - public IObjectReference GameObjectReference => _gameObjectReference; - public IObjectReference MaterialReference => _materialReference; - - public const string DirectDataPath = "Assets/Tests/Runtime/DummyData.asset"; - public const string EmptyDataPath = "Assets/Tests/Runtime/DummyEmptyData.asset"; - public const string AddressableDataPath = "Assets/Tests/Runtime/DummyAddressableData.asset"; - public const string NullSerializableDataPath = "Assets/Tests/Runtime/DummyNullSerializableData.asset"; - public static IEnumerable AllImplementationPaths() - { - yield return DirectDataPath; - yield return AddressableDataPath; - } - - public static DummyObjectReferenceData[] LoadData() - { -#if UNITY_EDITOR - var data = UnityEditor.AssetDatabase.LoadAssetAtPath(DirectDataPath); - var addressableData = UnityEditor.AssetDatabase.LoadAssetAtPath(AddressableDataPath); - return new[] { data , addressableData }; -#else - throw new NotSupportedException("Test assets can only be loaded in the Unity Editor."); -#endif - } - - public static DummyObjectReferenceData LoadEmptyData() - { -#if UNITY_EDITOR - var data = UnityEditor.AssetDatabase.LoadAssetAtPath(EmptyDataPath); - return data; -#else - throw new NotSupportedException("Test assets can only be loaded in the Unity Editor."); -#endif - } - - public static DummyObjectReferenceData LoadNullSerializableData() - { -#if UNITY_EDITOR - var data = UnityEditor.AssetDatabase.LoadAssetAtPath(NullSerializableDataPath); - return data; -#else - throw new NotSupportedException("Test assets can only be loaded in the Unity Editor."); -#endif - } - - public enum DataIndex - { - DirectDataPath = 0, - AddressableDataPath = 1 - } - - } -} diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReferenceTests.cs b/src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReferenceTests.cs deleted file mode 100644 index 20bbd11..0000000 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReferenceTests.cs +++ /dev/null @@ -1,386 +0,0 @@ -#nullable enable - -using System; -using System.Collections; -using System.Threading; -using Cysharp.Threading.Tasks; -using NUnit.Framework; -using UnityEngine; -using UnityEngine.TestTools; - -namespace ObjectReference.Tests -{ - /// - /// Tests for all implementations via the [SerializeReference] workflow. - /// Common load/dispose behaviour is parameterized over both SerializableObjectReference and - /// SerializableAddressableObjectReference assets using . - /// - public class ObjectReferenceTests - { - private static readonly DummyObjectReferenceData[] s_testData; - - static ObjectReferenceTests() => s_testData = DummyObjectReferenceData.LoadData(); - - // ---- Parameterized tests covering both implementations ---- - - [UnityTest] - public IEnumerator LoadAsync_GameObjectReference_ReturnsCube( - [ValueSource(nameof(s_testData))] DummyObjectReferenceData data) => new ToCoroutineEnumerator(async () => - { - try - { - var result = await data.GameObjectReference.LoadAsync(CancellationToken.None); - Assert.That(result, Is.Not.Null); - Assert.That(result.name, Is.EqualTo("Cube")); - } - finally - { - data.GameObjectReference.Dispose(); - } - }); - - [UnityTest] - public IEnumerator LoadAsync_MaterialReference_ReturnsMaterial( - [ValueSource(nameof(s_testData))] DummyObjectReferenceData data) => new ToCoroutineEnumerator(async () => - { - try - { - var result = await data.MaterialReference.LoadAsync(CancellationToken.None); - Assert.That(result, Is.Not.Null); - Assert.That(result.name, Is.EqualTo("New Material")); - } - finally - { - data.MaterialReference.Dispose(); - } - }); - - [UnityTest] - public IEnumerator LoadAsync_WithProgress_ReportsAndReturnsAsset( - [ValueSource(nameof(s_testData))] DummyObjectReferenceData data) => new ToCoroutineEnumerator(async () => - { - var lastProgress = -1f; - var progress = new Progress(v => lastProgress = v); - try - { - var result = await data.GameObjectReference.LoadAsync(progress, CancellationToken.None); - Assert.That(result, Is.Not.Null); - await UniTask.Delay(TimeSpan.FromSeconds(1)); - Assert.That(lastProgress, Is.EqualTo(1.0f).Within(0.001f)); - } - finally - { - data.GameObjectReference.Dispose(); - } - }); - - [UnityTest] - public IEnumerator LoadAsync_WithCancelledToken_ThrowsOperationCanceledException( - [ValueSource(nameof(s_testData))] DummyObjectReferenceData data) => new ToCoroutineEnumerator(async () => - { - using var cts = new CancellationTokenSource(); - cts.Cancel(); - var caught = false; - try - { - await data.GameObjectReference.LoadAsync(cts.Token); - } - catch (OperationCanceledException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [UnityTest] - public IEnumerator Dispose_AfterLoad_DoesNotThrow( - [ValueSource(nameof(s_testData))] DummyObjectReferenceData data) => new ToCoroutineEnumerator(async () => - { - await data.GameObjectReference.LoadAsync(CancellationToken.None); - Assert.That(() => data.GameObjectReference.Dispose(), Throws.Nothing); - }); - - [UnityTest] - public IEnumerator Dispose_WithoutLoad_DoesNotThrow( - [ValueSource(nameof(s_testData))] DummyObjectReferenceData data) => new ToCoroutineEnumerator(() => - { - Assert.That(() => data.GameObjectReference.Dispose(), Throws.Nothing); - return default; - }); - - // ---- SerializableObjectReference-specific ---- - - [UnityTest] - public IEnumerator LoadAsync_EmptyReference_ThrowsNullReferenceException() => new ToCoroutineEnumerator(async () => - { - var data = DummyObjectReferenceData.LoadEmptyData(); - var caught = false; - try - { - await data.GameObjectReference.LoadAsync(CancellationToken.None); - } - catch (NullReferenceException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [UnityTest] - public IEnumerator LoadAsync_SerializableObjectReference_NullValue_ThrowsNullReferenceException() => new ToCoroutineEnumerator(async () => - { - var data = DummyObjectReferenceData.LoadNullSerializableData(); - var caught = false; - try - { - await data.GameObjectReference.LoadAsync(CancellationToken.None); - } - catch (NullReferenceException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [UnityTest] - public IEnumerator LoadAsync_WithProgress_SerializableObjectReference_NullValue_ThrowsNullReferenceException() => new ToCoroutineEnumerator(async () => - { - var data = DummyObjectReferenceData.LoadNullSerializableData(); - var caught = false; - try - { - await data.GameObjectReference.LoadAsync(new Progress(_ => { }), CancellationToken.None); - } - catch (NullReferenceException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [UnityTest] - public IEnumerator LoadAsync_WithProgress_SerializableObjectReference_ReportsAndReturnsAsset() => new ToCoroutineEnumerator(async () => - { - var data = s_testData[(int)DummyObjectReferenceData.DataIndex.DirectDataPath]; - var lastProgress = -1f; - var progress = new Progress(v => lastProgress = v); - try - { - var result = await data.MaterialReference.LoadAsync(progress, CancellationToken.None); - Assert.That(result, Is.Not.Null); - await UniTask.Delay(TimeSpan.FromSeconds(0.1)); - Assert.That(lastProgress, Is.EqualTo(1.0f).Within(0.001f)); - } - finally - { - data.MaterialReference.Dispose(); - } - }); - - [UnityTest] - public IEnumerator LoadAsync_WithCancelledToken_SerializableObjectReference_ThrowsOperationCanceledException() => new ToCoroutineEnumerator(async () => - { - var data = s_testData[(int)DummyObjectReferenceData.DataIndex.DirectDataPath]; - using var cts = new CancellationTokenSource(); - cts.Cancel(); - var caught = false; - try - { - await data.MaterialReference.LoadAsync(cts.Token); - } - catch (OperationCanceledException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [UnityTest] - public IEnumerator LoadAsync_WithProgressAndCancelledToken_SerializableObjectReference_ThrowsOperationCanceledException() => new ToCoroutineEnumerator(async () => - { - var data = s_testData[(int)DummyObjectReferenceData.DataIndex.DirectDataPath]; - using var cts = new CancellationTokenSource(); - cts.Cancel(); - var caught = false; - try - { - await data.MaterialReference.LoadAsync(new Progress(_ => { }), cts.Token); - } - catch (OperationCanceledException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [UnityTest] - public IEnumerator Dispose_AfterLoad_SerializableObjectReference_DoesNotThrow() => new ToCoroutineEnumerator(async () => - { - var data = s_testData[(int)DummyObjectReferenceData.DataIndex.DirectDataPath]; - await data.MaterialReference.LoadAsync(CancellationToken.None); - Assert.That(() => data.MaterialReference.Dispose(), Throws.Nothing); - }); - - [UnityTest] - public IEnumerator Dispose_WithoutLoad_SerializableObjectReference_DoesNotThrow() => new ToCoroutineEnumerator(() => - { - var data = s_testData[(int)DummyObjectReferenceData.DataIndex.DirectDataPath]; - Assert.That(() => data.MaterialReference.Dispose(), Throws.Nothing); - return default; - }); - - // ---- SerializableAddressableObjectReference-specific ---- - - [UnityTest] - public IEnumerator LoadAsync_Addressable_SecondCall_ReturnsCachedValue() => new ToCoroutineEnumerator(async () => - { - var data = s_testData[(int)DummyObjectReferenceData.DataIndex.AddressableDataPath]; - try - { - var r1 = await data.GameObjectReference.LoadAsync(CancellationToken.None); - var r2 = await data.GameObjectReference.LoadAsync(CancellationToken.None); - Assert.That(r1, Is.Not.Null); - Assert.That(r1, Is.SameAs(r2)); - } - finally - { - data.GameObjectReference.Dispose(); - } - }); - - [UnityTest] - public IEnumerator LoadAsync_WithProgress_Addressable_FirstLoad_ReturnsAsset() => new ToCoroutineEnumerator(async () => - { - var data = s_testData[(int)DummyObjectReferenceData.DataIndex.AddressableDataPath]; - var lastProgress = -1f; - var progress = new Progress(v => lastProgress = v); - try - { - var result = await data.MaterialReference.LoadAsync(progress, CancellationToken.None); - Assert.That(result, Is.Not.Null); - await UniTask.Delay(TimeSpan.FromSeconds(1)); - Assert.That(lastProgress, Is.EqualTo(1.0f).Within(0.001f)); - } - finally - { - data.MaterialReference.Dispose(); - } - }); - } - - /// - /// Tests for the public (string-address based). - /// Tests focus on non-Addressables-dependent behavior (constructor, cancellation, dispose). - /// - public class AddressableObjectReferenceTests - { - private const string CubeAddress = "Assets/Cube.prefab"; - - [Test] - public void Constructor_NullAddress_ThrowsArgumentNullException() - { - Assert.That(() => new AddressableObjectReference(null!), Throws.ArgumentNullException); - } - - [Test] - public void Constructor_ValidAddress_CreatesInstance() - { - using var reference = new AddressableObjectReference("valid_address"); - Assert.That(reference, Is.Not.Null); - } - - [UnityTest] - public IEnumerator LoadAsync_WithCancelledToken_ThrowsOperationCanceledException() => new ToCoroutineEnumerator(async () => - { - using var reference = new AddressableObjectReference("some_address"); - using var cts = new CancellationTokenSource(); - cts.Cancel(); - var caught = false; - try - { - await reference.LoadAsync(cts.Token); - } - catch (OperationCanceledException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [UnityTest] - public IEnumerator LoadAsync_WithProgressAndCancelledToken_ThrowsOperationCanceledException() => new ToCoroutineEnumerator(async () => - { - using var reference = new AddressableObjectReference("some_address"); - using var cts = new CancellationTokenSource(); - cts.Cancel(); - var caught = false; - try - { - await reference.LoadAsync(new Progress(_ => { }), cts.Token); - } - catch (OperationCanceledException) - { - caught = true; - } - Assert.That(caught, Is.True); - }); - - [Test] - public void Dispose_WhenNotLoaded_DoesNotThrow() - { - var reference = new AddressableObjectReference("some_address"); - Assert.That(() => reference.Dispose(), Throws.Nothing); - } - - [Test] - public void Dispose_CalledTwice_DoesNotThrow() - { - var reference = new AddressableObjectReference("some_address"); - Assert.That(() => - { - reference.Dispose(); - reference.Dispose(); - }, Throws.Nothing); - } - - [UnityTest] - public IEnumerator LoadAsync_WithValidAddress_ReturnsGameObject() => new ToCoroutineEnumerator(async () => - { - using var reference = new AddressableObjectReference(CubeAddress); - var result = await reference.LoadAsync(CancellationToken.None); - Assert.That(result, Is.Not.Null); - Assert.That(result.name, Is.EqualTo("Cube")); - }); - - [UnityTest] - public IEnumerator LoadAsync_SecondCall_ReusesCachedHandle() => new ToCoroutineEnumerator(async () => - { - using var reference = new AddressableObjectReference(CubeAddress); - var r1 = await reference.LoadAsync(CancellationToken.None); - var r2 = await reference.LoadAsync(CancellationToken.None); - Assert.That(r1, Is.Not.Null); - Assert.That(r1, Is.SameAs(r2)); - }); - - [UnityTest] - public IEnumerator LoadAsync_WithProgress_ValidAddress_ReturnsGameObject() => new ToCoroutineEnumerator(async () => - { - using var reference = new AddressableObjectReference(CubeAddress); - var lastProgress = -1f; - var progress = new Progress(v => lastProgress = v); - var result = await reference.LoadAsync(progress, CancellationToken.None); - Assert.That(result, Is.Not.Null); - await UniTask.Delay(TimeSpan.FromSeconds(1)); - Assert.That(lastProgress, Is.EqualTo(1.0f).Within(0.001f)); - }); - - [UnityTest] - public IEnumerator Dispose_AfterLoad_ReleasesHandle() => new ToCoroutineEnumerator(async () => - { - var reference = new AddressableObjectReference(CubeAddress); - await reference.LoadAsync(CancellationToken.None); - Assert.That(() => reference.Dispose(), Throws.Nothing); - Assert.That(() => reference.Dispose(), Throws.Nothing); - }); - } -} \ No newline at end of file diff --git a/src/ObjectReference.Unity/Assets/Tests.meta b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests.meta similarity index 100% rename from src/ObjectReference.Unity/Assets/Tests.meta rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests.meta diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime.meta b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime.meta similarity index 100% rename from src/ObjectReference.Unity/Assets/Tests/Runtime.meta rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime.meta diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef similarity index 99% rename from src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef index 628929b..76a31e9 100644 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef +++ b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef @@ -22,4 +22,4 @@ ], "versionDefines": [], "noEngineReferences": false -} \ No newline at end of file +} diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef.meta b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef.meta similarity index 100% rename from src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef.meta rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReference.Runtime.Tests.asmdef.meta diff --git a/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs new file mode 100644 index 0000000..d532c33 --- /dev/null +++ b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs @@ -0,0 +1,173 @@ +#nullable enable + +using System; +using System.Collections.Generic; +using System.Reflection; +using Cysharp.Threading.Tasks; +using UnityEngine; +using UnityEngine.AddressableAssets; +using UnityEngine.AddressableAssets.ResourceLocators; +using UnityEngine.ResourceManagement.AsyncOperations; +using UnityEngine.ResourceManagement.ResourceLocations; +using UnityEngine.ResourceManagement.ResourceProviders; +using UnityEngine.ResourceManagement.Util; + +namespace ObjectReference.Tests +{ + internal sealed class ObjectReferenceTestEnvironment : IDisposable + { + public const string CubeAddress = "objectreference-tests-cube"; + public const string MaterialAddress = "objectreference-tests-material"; + public const string CubeGuid = "11111111111111111111111111111111"; + public const string MaterialGuid = "22222222222222222222222222222222"; + + private const BindingFlags InstanceFieldFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; + + private readonly FieldInfo _addressablesInstanceField; + private readonly object _previousAddressablesInstance; + private readonly object _testAddressablesInstance; + private readonly InMemoryObjectProvider _provider; + private readonly ResourceLocationMap _locator; + + public ObjectReferenceTestEnvironment() + { + Cube = new GameObject("Cube"); + var shader = Shader.Find("Hidden/InternalErrorShader") + ?? throw new InvalidOperationException("The built-in error shader is unavailable."); + Material = new Material(shader) { name = "New Material" }; + + _addressablesInstanceField = typeof(Addressables).GetField( + "m_AddressablesInstance", + BindingFlags.Static | BindingFlags.NonPublic) + ?? throw new MissingFieldException(typeof(Addressables).FullName, "m_AddressablesInstance"); + _previousAddressablesInstance = _addressablesInstanceField.GetValue(null) + ?? throw new InvalidOperationException("The Addressables instance is unavailable."); + + var addressablesImplType = _previousAddressablesInstance.GetType(); + _testAddressablesInstance = Activator.CreateInstance( + addressablesImplType, + new LRUCacheAllocationStrategy(1000, 1000, 100, 10)) + ?? throw new InvalidOperationException("Could not create a test Addressables instance."); + _addressablesInstanceField.SetValue(null, _testAddressablesInstance); + + SetAddressablesField(addressablesImplType, "hasStartedInitialization", true); + SetAddressablesField( + addressablesImplType, + "m_InitializationOperation", + default(AsyncOperationHandle)); + SetAddressablesField( + addressablesImplType, + "m_OnHandleCompleteAction", + new Action(_ => { })); + + _provider = new InMemoryObjectProvider(new Dictionary + { + [CubeAddress] = Cube, + [MaterialAddress] = Material, + [CubeGuid] = Cube, + [MaterialGuid] = Material, + }); + Addressables.ResourceManager.ResourceProviders.Add(_provider); + + _locator = new ResourceLocationMap("ObjectReferenceTests", 4); + AddLocation(CubeAddress, typeof(GameObject)); + AddLocation(MaterialAddress, typeof(Material)); + AddLocation(CubeGuid, typeof(GameObject)); + AddLocation(MaterialGuid, typeof(Material)); + Addressables.AddResourceLocator(_locator); + } + + public GameObject Cube { get; } + + public Material Material { get; } + + public IObjectReference CreateSerializableReference(T value) + where T : UnityEngine.Object => CreateSerializableReference( + "SerializableObjectReference`1", + value); + + public IObjectReference CreateSerializableAddressableReference(string guid) + where T : UnityEngine.Object => CreateSerializableReference( + "SerializableAddressableObjectReference`1", + new AssetReferenceT(guid)); + + public void Dispose() + { + Addressables.RemoveResourceLocator(_locator); + Addressables.ResourceManager.ResourceProviders.Remove(_provider); + + var releaseMethod = _testAddressablesInstance.GetType().GetMethod( + "ReleaseSceneManagerOperation", + InstanceFieldFlags); + releaseMethod?.Invoke(_testAddressablesInstance, null); + _addressablesInstanceField.SetValue(null, _previousAddressablesInstance); + + UnityEngine.Object.DestroyImmediate(Cube); + UnityEngine.Object.DestroyImmediate(Material); + } + + private IObjectReference CreateSerializableReference(string genericTypeName, object? value) + where T : UnityEngine.Object + { + var openType = typeof(IObjectReference<>).Assembly.GetType( + $"ObjectReference.{genericTypeName}", + throwOnError: true)!; + var closedType = openType.MakeGenericType(typeof(T)); + var instance = Activator.CreateInstance(closedType, nonPublic: true) + ?? throw new InvalidOperationException($"Could not create {closedType.FullName}."); + var valueField = closedType.GetField("_value", InstanceFieldFlags) + ?? throw new MissingFieldException(closedType.FullName, "_value"); + valueField.SetValue(instance, value); + return (IObjectReference)instance; + } + + private void AddLocation(string key, Type resourceType) + { + _locator.Add(key, new ResourceLocationBase(key, key, _provider.ProviderId, resourceType)); + } + + private void SetAddressablesField(Type addressablesImplType, string name, object value) + { + var field = addressablesImplType.GetField(name, InstanceFieldFlags) + ?? throw new MissingFieldException(addressablesImplType.FullName, name); + field.SetValue(_testAddressablesInstance, value); + } + } + + internal sealed class InMemoryObjectProvider : ResourceProviderBase + { + private readonly IReadOnlyDictionary _objects; + + public InMemoryObjectProvider(IReadOnlyDictionary objects) + { + _objects = objects; + } + + public override Type GetDefaultType(IResourceLocation location) => location.ResourceType; + + public override bool CanProvide(Type type, IResourceLocation location) => + type.IsAssignableFrom(location.ResourceType); + + public override void Provide(ProvideHandle provideHandle) => CompleteAsync(provideHandle).Forget(); + + public override void Release(IResourceLocation location, object asset) + { + } + + private async UniTaskVoid CompleteAsync(ProvideHandle provideHandle) + { + await UniTask.Yield(); + var key = provideHandle.Location.PrimaryKey; + if (!_objects.TryGetValue(key, out var value)) + { + provideHandle.Complete( + null!, + status: false, + new InvalidOperationException($"No in-memory object is registered for '{key}'.")); + return; + } + + provideHandle.Complete(value, status: true, exception: null); + } + } +} \ No newline at end of file diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyObjectReferenceData.cs.meta b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs.meta similarity index 83% rename from src/ObjectReference.Unity/Assets/Tests/Runtime/DummyObjectReferenceData.cs.meta rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs.meta index c4e606f..9fe640b 100644 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/DummyObjectReferenceData.cs.meta +++ b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0 +guid: 37c34f12359a4dd3a8d6458b3297c141 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTests.cs b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTests.cs new file mode 100644 index 0000000..730832a --- /dev/null +++ b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTests.cs @@ -0,0 +1,269 @@ +#nullable enable + +using System; +using System.Collections; +using System.Threading; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.TestTools; + +namespace ObjectReference.Tests +{ + public abstract class ObjectReferenceTestFixture + { + private protected ObjectReferenceTestEnvironment Environment { get; private set; } = null!; + + [SetUp] + public void SetUp() => Environment = new ObjectReferenceTestEnvironment(); + + [TearDown] + public void TearDown() => Environment.Dispose(); + } + + public class ObjectReferenceTests : ObjectReferenceTestFixture + { + private static readonly ReferenceKind[] s_referenceKinds = + { + ReferenceKind.Direct, + ReferenceKind.Addressable, + }; + + [UnityTest] + public IEnumerator LoadAsync_GameObjectReference_ReturnsCube( + [ValueSource(nameof(s_referenceKinds))] ReferenceKind kind) => new ToCoroutineEnumerator(async () => + { + using var reference = CreateGameObjectReference(kind); + var result = await reference.LoadAsync(CancellationToken.None); + Assert.That(result, Is.SameAs(Environment.Cube)); + Assert.That(result.name, Is.EqualTo("Cube")); + }); + + [UnityTest] + public IEnumerator LoadAsync_MaterialReference_ReturnsMaterial( + [ValueSource(nameof(s_referenceKinds))] ReferenceKind kind) => new ToCoroutineEnumerator(async () => + { + using var reference = CreateMaterialReference(kind); + var result = await reference.LoadAsync(CancellationToken.None); + Assert.That(result, Is.SameAs(Environment.Material)); + Assert.That(result.name, Is.EqualTo("New Material")); + }); + + [UnityTest] + public IEnumerator LoadAsync_WithProgress_ReportsAndReturnsAsset( + [ValueSource(nameof(s_referenceKinds))] ReferenceKind kind) => new ToCoroutineEnumerator(async () => + { + using var reference = CreateGameObjectReference(kind); + var progress = new ProgressRecorder(); + var result = await reference.LoadAsync(progress, CancellationToken.None); + Assert.That(result, Is.SameAs(Environment.Cube)); + Assert.That(progress.Value, Is.EqualTo(1.0f).Within(0.001f)); + }); + + [UnityTest] + public IEnumerator LoadAsync_WithCancelledToken_ThrowsOperationCanceledException( + [ValueSource(nameof(s_referenceKinds))] ReferenceKind kind) => new ToCoroutineEnumerator(async () => + { + using var reference = CreateGameObjectReference(kind); + using var cts = new CancellationTokenSource(); + cts.Cancel(); + + var caught = false; + try + { + await reference.LoadAsync(cts.Token); + } + catch (OperationCanceledException) + { + caught = true; + } + + Assert.That(caught, Is.True); + }); + + [UnityTest] + public IEnumerator Dispose_AfterLoad_DoesNotThrow( + [ValueSource(nameof(s_referenceKinds))] ReferenceKind kind) => new ToCoroutineEnumerator(async () => + { + var reference = CreateGameObjectReference(kind); + await reference.LoadAsync(CancellationToken.None); + Assert.That(() => reference.Dispose(), Throws.Nothing); + }); + + [Test] + public void Dispose_WithoutLoad_DoesNotThrow( + [ValueSource(nameof(s_referenceKinds))] ReferenceKind kind) + { + var reference = CreateGameObjectReference(kind); + Assert.That(() => reference.Dispose(), Throws.Nothing); + } + + [Test] + public void LoadAsync_SerializableObjectReference_NullValue_ThrowsNullReferenceException() + { + using var reference = Environment.CreateSerializableReference(null!); + Assert.Throws(() => reference.LoadAsync(CancellationToken.None)); + } + + [Test] + public void LoadAsync_WithProgress_SerializableObjectReference_NullValue_ThrowsNullReferenceException() + { + using var reference = Environment.CreateSerializableReference(null!); + Assert.Throws(() => + reference.LoadAsync(new ProgressRecorder(), CancellationToken.None)); + } + + [UnityTest] + public IEnumerator LoadAsync_Addressable_SecondCall_ReturnsCachedValue() => new ToCoroutineEnumerator(async () => + { + using var reference = Environment.CreateSerializableAddressableReference( + ObjectReferenceTestEnvironment.CubeGuid); + var first = await reference.LoadAsync(CancellationToken.None); + var second = await reference.LoadAsync(CancellationToken.None); + Assert.That(first, Is.SameAs(Environment.Cube)); + Assert.That(second, Is.SameAs(first)); + }); + + private IObjectReference CreateGameObjectReference(ReferenceKind kind) => kind switch + { + ReferenceKind.Direct => Environment.CreateSerializableReference(Environment.Cube), + ReferenceKind.Addressable => Environment.CreateSerializableAddressableReference( + ObjectReferenceTestEnvironment.CubeGuid), + _ => throw new ArgumentOutOfRangeException(nameof(kind), kind, null), + }; + + private IObjectReference CreateMaterialReference(ReferenceKind kind) => kind switch + { + ReferenceKind.Direct => Environment.CreateSerializableReference(Environment.Material), + ReferenceKind.Addressable => Environment.CreateSerializableAddressableReference( + ObjectReferenceTestEnvironment.MaterialGuid), + _ => throw new ArgumentOutOfRangeException(nameof(kind), kind, null), + }; + + public enum ReferenceKind + { + Direct, + Addressable, + } + } + + public class AddressableObjectReferenceTests : ObjectReferenceTestFixture + { + [Test] + public void Constructor_NullAddress_ThrowsArgumentNullException() + { + Assert.That(() => new AddressableObjectReference(null!), Throws.ArgumentNullException); + } + + [Test] + public void Constructor_ValidAddress_CreatesInstance() + { + using var reference = new AddressableObjectReference("valid_address"); + Assert.That(reference, Is.Not.Null); + } + + [UnityTest] + public IEnumerator LoadAsync_WithCancelledToken_ThrowsOperationCanceledException() => new ToCoroutineEnumerator(async () => + { + using var reference = new AddressableObjectReference("some_address"); + using var cts = new CancellationTokenSource(); + cts.Cancel(); + var caught = false; + try + { + await reference.LoadAsync(cts.Token); + } + catch (OperationCanceledException) + { + caught = true; + } + + Assert.That(caught, Is.True); + }); + + [UnityTest] + public IEnumerator LoadAsync_WithProgressAndCancelledToken_ThrowsOperationCanceledException() => new ToCoroutineEnumerator(async () => + { + using var reference = new AddressableObjectReference("some_address"); + using var cts = new CancellationTokenSource(); + cts.Cancel(); + var caught = false; + try + { + await reference.LoadAsync(new ProgressRecorder(), cts.Token); + } + catch (OperationCanceledException) + { + caught = true; + } + + Assert.That(caught, Is.True); + }); + + [Test] + public void Dispose_WhenNotLoaded_DoesNotThrow() + { + var reference = new AddressableObjectReference("some_address"); + Assert.That(() => reference.Dispose(), Throws.Nothing); + } + + [Test] + public void Dispose_CalledTwice_DoesNotThrow() + { + var reference = new AddressableObjectReference("some_address"); + Assert.That(() => + { + reference.Dispose(); + reference.Dispose(); + }, Throws.Nothing); + } + + [UnityTest] + public IEnumerator LoadAsync_WithValidAddress_ReturnsGameObject() => new ToCoroutineEnumerator(async () => + { + using var reference = new AddressableObjectReference( + ObjectReferenceTestEnvironment.CubeAddress); + var result = await reference.LoadAsync(CancellationToken.None); + Assert.That(result, Is.SameAs(Environment.Cube)); + Assert.That(result.name, Is.EqualTo("Cube")); + }); + + [UnityTest] + public IEnumerator LoadAsync_SecondCall_ReusesCachedHandle() => new ToCoroutineEnumerator(async () => + { + using var reference = new AddressableObjectReference( + ObjectReferenceTestEnvironment.CubeAddress); + var first = await reference.LoadAsync(CancellationToken.None); + var second = await reference.LoadAsync(CancellationToken.None); + Assert.That(first, Is.SameAs(Environment.Cube)); + Assert.That(second, Is.SameAs(first)); + }); + + [UnityTest] + public IEnumerator LoadAsync_WithProgress_ValidAddress_ReturnsGameObject() => new ToCoroutineEnumerator(async () => + { + using var reference = new AddressableObjectReference( + ObjectReferenceTestEnvironment.CubeAddress); + var progress = new ProgressRecorder(); + var result = await reference.LoadAsync(progress, CancellationToken.None); + Assert.That(result, Is.SameAs(Environment.Cube)); + Assert.That(progress.Value, Is.EqualTo(1.0f).Within(0.001f)); + }); + + [UnityTest] + public IEnumerator Dispose_AfterLoad_ReleasesHandle() => new ToCoroutineEnumerator(async () => + { + var reference = new AddressableObjectReference( + ObjectReferenceTestEnvironment.CubeAddress); + await reference.LoadAsync(CancellationToken.None); + Assert.That(() => reference.Dispose(), Throws.Nothing); + Assert.That(() => reference.Dispose(), Throws.Nothing); + }); + } + + internal sealed class ProgressRecorder : IProgress + { + public float Value { get; private set; } = -1.0f; + + public void Report(float value) => Value = value; + } +} \ No newline at end of file diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReferenceTests.cs.meta b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTests.cs.meta similarity index 100% rename from src/ObjectReference.Unity/Assets/Tests/Runtime/ObjectReferenceTests.cs.meta rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTests.cs.meta diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/ToCoroutineEnumerator.cs b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ToCoroutineEnumerator.cs similarity index 89% rename from src/ObjectReference.Unity/Assets/Tests/Runtime/ToCoroutineEnumerator.cs rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ToCoroutineEnumerator.cs index 17cf993..3f13836 100644 --- a/src/ObjectReference.Unity/Assets/Tests/Runtime/ToCoroutineEnumerator.cs +++ b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ToCoroutineEnumerator.cs @@ -16,8 +16,8 @@ internal sealed class ToCoroutineEnumerator : IEnumerator private readonly Func _task; private readonly Action? _exceptionHandler; - private bool _completed = false; - private bool _isStarted = false; + private bool _completed; + private bool _isStarted; private ExceptionDispatchInfo? _exception; public ToCoroutineEnumerator(Func task, Action? exceptionHandler = null) @@ -26,6 +26,22 @@ public ToCoroutineEnumerator(Func task, Action? exceptionH _exceptionHandler = exceptionHandler; } + public object Current => null!; + + public bool MoveNext() + { + if (!_isStarted) + { + _isStarted = true; + _ = RunTask(); + } + + _exception?.Throw(); + return !_completed; + } + + void IEnumerator.Reset() => throw new NotSupportedException("Reset is not supported for this enumerator."); + private async ValueTask RunTask() { try @@ -48,25 +64,5 @@ private async ValueTask RunTask() _completed = true; } } - - public object Current => null!; - - public bool MoveNext() - { - if (!_isStarted) - { - _isStarted = true; - _ = RunTask(); - } - - if (_exception != null) - { - _exception.Throw(); - } - - return !_completed; - } - - void IEnumerator.Reset() => throw new NotSupportedException("Reset is not supported for this enumerator."); } -} +} \ No newline at end of file diff --git a/src/ObjectReference.Unity/Assets/Tests/Runtime/ToCoroutineEnumerator.cs.meta b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ToCoroutineEnumerator.cs.meta similarity index 100% rename from src/ObjectReference.Unity/Assets/Tests/Runtime/ToCoroutineEnumerator.cs.meta rename to src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ToCoroutineEnumerator.cs.meta diff --git a/src/ObjectReference.Unity/Packages/manifest.json b/src/ObjectReference.Unity/Packages/manifest.json index 600f0a7..9139598 100644 --- a/src/ObjectReference.Unity/Packages/manifest.json +++ b/src/ObjectReference.Unity/Packages/manifest.json @@ -37,5 +37,8 @@ "com.unity.modules.vr": "1.0.0", "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0" - } + }, + "testables": [ + "jp.andantetribe.objectreference" + ] } diff --git a/src/ObjectReference.Unity/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/src/ObjectReference.Unity/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json index 6ec91e9..7da64eb 100644 --- a/src/ObjectReference.Unity/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json +++ b/src/ObjectReference.Unity/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json @@ -4,7 +4,7 @@ { "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "key": "IncludeAssemblies", - "value": "{\"m_Value\":\"ObjectReference.Runtime.Tests\"}" + "value": "{\"m_Value\":\"ObjectReference\"}" }, { "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", From ead36c4304649503035e4e92ce6f633db00d672f Mon Sep 17 00:00:00 2001 From: Masatake Iwasaki <78918084+kochounoyume@users.noreply.github.com> Date: Sun, 12 Jul 2026 05:58:00 +0900 Subject: [PATCH 2/3] feat: add dummy material --- .../Assets/New Material.mat | 84 +++++++++++++++++++ .../Assets/New Material.mat.meta | 8 ++ 2 files changed, 92 insertions(+) create mode 100644 src/ObjectReference.Unity/Assets/New Material.mat create mode 100644 src/ObjectReference.Unity/Assets/New Material.mat.meta diff --git a/src/ObjectReference.Unity/Assets/New Material.mat b/src/ObjectReference.Unity/Assets/New Material.mat new file mode 100644 index 0000000..bc8d1e2 --- /dev/null +++ b/src/ObjectReference.Unity/Assets/New Material.mat @@ -0,0 +1,84 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Material + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/src/ObjectReference.Unity/Assets/New Material.mat.meta b/src/ObjectReference.Unity/Assets/New Material.mat.meta new file mode 100644 index 0000000..2c2d51b --- /dev/null +++ b/src/ObjectReference.Unity/Assets/New Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f000f9de0c56ed438ed837247e4bacb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: From fc03e8a6faadacae7f16ade7b82fb3aeec35a074 Mon Sep 17 00:00:00 2001 From: Masatake Iwasaki <78918084+kochounoyume@users.noreply.github.com> Date: Sun, 12 Jul 2026 06:25:29 +0900 Subject: [PATCH 3/3] test: restore setting of addressables instance in test environment --- .../Tests/Runtime/ObjectReferenceTestEnvironment.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs index d532c33..72dfe1f 100644 --- a/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs +++ b/src/ObjectReference.Unity/Packages/jp.andantetribe.objectreference/Tests/Runtime/ObjectReferenceTestEnvironment.cs @@ -48,7 +48,6 @@ public ObjectReferenceTestEnvironment() addressablesImplType, new LRUCacheAllocationStrategy(1000, 1000, 100, 10)) ?? throw new InvalidOperationException("Could not create a test Addressables instance."); - _addressablesInstanceField.SetValue(null, _testAddressablesInstance); SetAddressablesField(addressablesImplType, "hasStartedInitialization", true); SetAddressablesField( @@ -60,6 +59,8 @@ public ObjectReferenceTestEnvironment() "m_OnHandleCompleteAction", new Action(_ => { })); + _addressablesInstanceField.SetValue(null, _testAddressablesInstance); + _provider = new InMemoryObjectProvider(new Dictionary { [CubeAddress] = Cube,