예제 #1
0
        public void DefaultBuildTasks_WriteSerializedFiles()
        {
            IBuildParameters buildParams    = GetBuildParameters();
            IDependencyData  dependencyData = new BuildDependencyData();
            IWriteData       writeData      = new BuildWriteData();
            IBuildResults    results        = new BuildResults();

            ReturnCode exitCode = RunTask <WriteSerializedFiles>(buildParams, dependencyData, writeData, results);

            Assert.AreEqual(ReturnCode.Success, exitCode);
        }
예제 #2
0
        public void WhenReferencesDoesNotContainAssetsInBundles_FilterReferences_PrunesNothingAndReturnsNothing()
        {
            var assetInBundle = new GUID("00000000000000000000000000000000");
            List <ObjectIdentifier> objects = CreateObjectIdentifierList("path", assetInBundle);
            IDependencyData         dep     = new BuildDependencyData();

            var         references = new List <ObjectIdentifier>(objects);
            List <GUID> results    = GenerateBundlePacking.FilterReferencesForAsset(dep, assetInBundle, references);

            Assert.AreEqual(1, references.Count);
            Assert.AreEqual(assetInBundle, references[0].guid);
            Assert.AreEqual(0, results.Count);
        }
예제 #3
0
        IDependencyData GetDependencyData(List <ObjectIdentifier> objects, params GUID[] guids)
        {
            IDependencyData dep = new BuildDependencyData();

            for (int i = 0; i < guids.Length; i++)
            {
                AssetLoadInfo loadInfo = new AssetLoadInfo()
                {
                    asset             = guids[i],
                    address           = $"path{i}",
                    includedObjects   = objects,
                    referencedObjects = objects
                };
                dep.AssetInfo.Add(guids[i], loadInfo);
            }
            return(dep);
        }
예제 #4
0
        static IDependencyData GetDependencyData()
        {
            GUID guid;

            GUID.TryParse(AssetDatabase.AssetPathToGUID(k_CubePath), out guid);
            ObjectIdentifier[] oId      = ContentBuildInterface.GetPlayerObjectIdentifiersInAsset(guid, EditorUserBuildSettings.activeBuildTarget);
            AssetLoadInfo      loadInfo = new AssetLoadInfo()
            {
                asset             = guid,
                address           = k_CubePath,
                includedObjects   = oId.ToList(),
                referencedObjects = oId.ToList()
            };

            IDependencyData dep = new BuildDependencyData();

            dep.AssetInfo.Add(guid, loadInfo);

            return(dep);
        }
    public void AddHashToBundleNameTask_DoesNotChangeHash_WhenAssetsChangeOrder()
    {
        //Setup
        string path1 = $"{TempPath}/test1.prefab";
        string path2 = $"{TempPath}/test2.prefab";
        string path3 = $"{TempPath}/test3.prefab";

        GUID guid1 = new GUID(CreateAsset(path1, "1"));
        GUID guid2 = new GUID(CreateAsset(path2, "2"));
        GUID guid3 = new GUID(CreateAsset(path3, "3"));

        List <GUID> list1 = new List <GUID>()
        {
            guid1,
            guid2,
            guid3
        };

        List <GUID> list2 = new List <GUID>()
        {
            guid2,
            guid1,
            guid3
        };

        AddressableAssetGroup group = m_Settings.CreateGroup("AddHashTestGroup", false, false, false,
                                                             new List <AddressableAssetGroupSchema>());

        m_Settings.CreateOrMoveEntry(guid1.ToString(), group);
        m_Settings.CreateOrMoveEntry(guid2.ToString(), group);
        m_Settings.CreateOrMoveEntry(guid3.ToString(), group);

        IDependencyData dependencyData = new BuildDependencyData()
        {
            AssetInfo =
            {
                { guid1, new AssetLoadInfo()
                    {
                        referencedObjects = ContentBuildInterface.GetPlayerObjectIdentifiersInAsset(guid1, EditorUserBuildSettings.activeBuildTarget).ToList()
                    } },
                { guid2, new AssetLoadInfo()
                    {
                        referencedObjects = ContentBuildInterface.GetPlayerObjectIdentifiersInAsset(guid2, EditorUserBuildSettings.activeBuildTarget).ToList()
                    } },
                { guid3, new AssetLoadInfo()
                    {
                        referencedObjects = ContentBuildInterface.GetPlayerObjectIdentifiersInAsset(guid3, EditorUserBuildSettings.activeBuildTarget).ToList()
                    } }
            }
        };

        AddressableAssetsBuildContext context = new AddressableAssetsBuildContext()
        {
            Settings = m_Settings
        };

        AddHashToBundleNameTask addHashTask = new AddHashToBundleNameTask();
        var field = typeof(AddHashToBundleNameTask).GetField("m_DependencyData", BindingFlags.Instance | BindingFlags.NonPublic);

        field.SetValue(addHashTask, dependencyData);

        //Test
        RawHash hash1 = addHashTask.GetAssetsHash(list1, context);
        RawHash hash2 = addHashTask.GetAssetsHash(list2, context);

        //Assert
        Assert.AreEqual(hash1, hash2);

        //Cleanup
        m_Settings.RemoveGroup(group);
    }