public void EditorInitialization_DoesNotDeleteFoldersThatAreStillOnDisk()
        {
            //Setup
            string folderPath = "Assets/Temp/FakeAddressablesFolder/";

            Directory.CreateDirectory(folderPath);
            AssetDatabase.ImportAsset(folderPath);
            AddressableAssetEntry entry = new AddressableAssetEntry(AssetDatabase.AssetPathToGUID(folderPath),
                                                                    folderPath, m_testGroup, false);

            m_testGroup.AddAssetEntry(entry);
            entry.m_cachedAssetPath = folderPath;

            Assert.IsTrue(m_testGroup.entries.Contains(entry), "Folder entry is no longer in Addressable group before purge.");

            //Test
            AddressableEditorInitialization.PurgeInvalidAssetEntries(Settings);

            //Assert
            Assert.IsTrue(m_testGroup.entries.Contains(entry), "Folder entry is no longer in Addressable group after purge.");

            //Cleanup
            m_testGroup.RemoveAssetEntry(entry);
            AssetDatabase.DeleteAsset(folderPath);
        }
 public void RemoveOnSetterNull()
 {
     if (Setter != null)
     {
         return;
     }
     RemoveAdataFrom(this, GlobalOnStartList);
     RemoveAdataFrom(this, GlobalOnAwakeList);
     if (group != null && group.entries.Contains(entry))
     {
         group.RemoveAssetEntry(entry);
     }
 }
Exemple #3
0
    private static void RemoveInvalidAsset(AddressableAssetGroup group)
    {
        List <AddressableAssetEntry> invalidAssets = new List <AddressableAssetEntry>();

        foreach (AddressableAssetEntry iterAsset in group.entries)
        {
            if (string.IsNullOrWhiteSpace(AssetDatabase.GUIDToAssetPath(iterAsset.guid)))
            {
                invalidAssets.Add(iterAsset);
            }
        }

        for (int iAsset = 0; iAsset < invalidAssets.Count; iAsset++)
        {
            AddressableAssetEntry iterAsset = invalidAssets[iAsset];
            group.RemoveAssetEntry(iterAsset, false);
        }
    }