コード例 #1
0
        public void Locator_KeysProperty_Contains_Expected_Keys()
        {
            using (new HideResourceFoldersScope())
            {
                SetupLocatorAssets();
                var locator = new AddressableAssetSettingsLocator(m_Settings);
                if (ExpectedKeys.Count != locator.Keys.Count())
                {
                    Debug.Log("GENERATED");
                    int i = 0;
                    foreach (var k in locator.Keys)
                    {
                        Debug.Log($"[{i}] {k}");
                        i++;
                    }

                    Debug.Log("EXPECTED");
                    i = 0;
                    foreach (var k in ExpectedKeys)
                    {
                        Debug.Log($"[{i}] {k}");
                        i++;
                    }
                }

                var builtInPackageResourcesEntries = ResourcesTestUtility.GetResourcesEntries(m_Settings, true);
                foreach (var key in builtInPackageResourcesEntries)
                {
                    ExpectedKeys.Add(key.guid);
                    ExpectedKeys.Add(key.address);
                }

                Assert.AreEqual(ExpectedKeys.Count, locator.Keys.Count());
                int index = 0;
                foreach (var k in locator.Keys)
                {
                    Assert.IsTrue(ExpectedKeys.Contains(k), $"Cannot find key {k}, index={index} in expected keys");
                    index++;
                }
            }
        }
コード例 #2
0
        public IEnumerator Locator_KeysProperty_Contains_Expected_Keys_ForAllBuildScripts()
        {
            using (new HideResourceFoldersScope())
            {
                SetupLocatorAssets();

                AddressablesDataBuilderInput input = new AddressablesDataBuilderInput(m_Settings);
                input.Logger = new BuildLog();

                var fastMode       = ScriptableObject.CreateInstance <BuildScriptFastMode>();
                var virtualMode    = ScriptableObject.CreateInstance <BuildScriptVirtualMode>();
                var packedMode     = ScriptableObject.CreateInstance <BuildScriptPackedMode>();
                var packedPlayMode = ScriptableObject.CreateInstance <BuildScriptPackedPlayMode>();

                AddressablesImpl fastModeImpl = new AddressablesImpl(new DefaultAllocationStrategy());
                fastModeImpl.AddResourceLocator(new AddressableAssetSettingsLocator(m_Settings));

                var fastModeSettingsPath       = fastMode.BuildData <AddressableAssetBuildResult>(input).OutputPath;
                var virtualModeSettingsPath    = virtualMode.BuildData <AddressableAssetBuildResult>(input).OutputPath;
                var packedModeSettingsPath     = packedMode.BuildData <AddressableAssetBuildResult>(input).OutputPath;
                var packedPlayModeSettingsPath = packedPlayMode.BuildData <AddressableAssetBuildResult>(input).OutputPath;

                AddressablesImpl fmImpl         = new AddressablesImpl(new DefaultAllocationStrategy());
                AddressablesImpl virtualImpl    = new AddressablesImpl(new DefaultAllocationStrategy());
                AddressablesImpl packedImpl     = new AddressablesImpl(new DefaultAllocationStrategy());
                AddressablesImpl packedPlayImpl = new AddressablesImpl(new DefaultAllocationStrategy());

                fmImpl.AddResourceLocator(new AddressableAssetSettingsLocator(m_Settings));
                virtualImpl.AddResourceLocator(new AddressableAssetSettingsLocator(m_Settings));
                packedImpl.AddResourceLocator(new AddressableAssetSettingsLocator(m_Settings));
                packedPlayImpl.AddResourceLocator(new AddressableAssetSettingsLocator(m_Settings));

                var fastModeHandle   = fmImpl.ResourceManager.StartOperation(new FastModeInitializationOperation(fmImpl, m_Settings), default(AsyncOperationHandle));
                var virtualHandle    = virtualImpl.InitializeAsync(virtualModeSettingsPath);
                var packedHandle     = packedImpl.InitializeAsync(packedModeSettingsPath);
                var packedPlayHandle = packedPlayImpl.InitializeAsync(packedPlayModeSettingsPath);
                while (!fastModeHandle.IsDone && !virtualHandle.IsDone && !packedHandle.IsDone &&
                       !packedPlayHandle.IsDone)
                {
                    yield return(null);
                }

                var fastModeKeys    = fmImpl.ResourceLocators.First(l => l.GetType() == typeof(AddressableAssetSettingsLocator)).Keys;
                var virtualModeKeys = virtualImpl.ResourceLocators.First(l => l.GetType() == typeof(AddressableAssetSettingsLocator)).Keys;
                var packedModeKeys  = packedImpl.ResourceLocators.First(l => l.GetType() == typeof(AddressableAssetSettingsLocator)).Keys;
                var packedPlayKeys  = packedPlayImpl.ResourceLocators.First(l => l.GetType() == typeof(AddressableAssetSettingsLocator)).Keys;


                var builtInPackageResourcesEntries = ResourcesTestUtility.GetResourcesEntries(m_Settings, true);
                foreach (var key in builtInPackageResourcesEntries)
                {
                    ExpectedKeys.Add(key.guid);
                    ExpectedKeys.Add(key.address);
                }

                //Get our baseline
                Assert.AreEqual(ExpectedKeys.Count, fastModeKeys.Count());
                foreach (var key in fastModeKeys)
                {
                    Assert.IsTrue(ExpectedKeys.Contains(key));
                }

                //Transitive property to check other build scripts
                CollectionAssert.AreEqual(fastModeKeys, virtualModeKeys);
                CollectionAssert.AreEqual(fastModeKeys, packedPlayKeys);
                CollectionAssert.AreEqual(fastModeKeys, packedModeKeys);
            }
        }