Exemplo n.º 1
0
    static Texture2D GetSharedIconOfInlucde(string assetPath)
    {
        var bundleList = BundleManager.GetRelatedBundles(assetPath);

        if (bundleList != null && bundleList.Count > 0)
        {
            foreach (BundleData bundle in bundleList)
            {
                if (bundle.name == currentBundle.name)
                {
                    continue;
                }
                if (BundleManager.IsBundleDependOn(bundle.name, currentBundle.name))
                {
                    return(BMGUIStyles.GetIcon("dependedAsset"));
                }
                else if (BundleManager.IsBundleDependOn(currentBundle.name, bundle.name))
                {
                    return(BMGUIStyles.GetIcon("sharedAsset"));
                }
            }
        }

        bundleList = BundleManager.GetIncludeBundles(assetPath);
        if (bundleList != null && bundleList.Count > 1)
        {
            return(BMGUIStyles.GetIcon("duplicatedInclude"));
        }

        return(null);
    }
Exemplo n.º 2
0
    static Texture2D GetSharedIconOfDepend(string guid)
    {
        var bundleList = BundleManager.GetIncludeBundles(guid);

        if (bundleList != null && bundleList.Count > 0)
        {
            foreach (BundleData bundle in bundleList)
            {
                if (bundle.name == currentBundle.name)
                {
                    continue;
                }

                if (BundleManager.IsBundleDependOn(currentBundle.name, bundle.name))
                {
                    return(BMGUIStyles.GetIcon("sharedAsset"));
                }
            }
        }

        bundleList = BundleManager.GetExIncludeBundles(guid);
        if (bundleList != null && bundleList.Count > 0)
        {
            foreach (BundleData bundle in bundleList)
            {
                if (bundle.name == currentBundle.name)
                {
                    continue;
                }

                if (BundleManager.IsBundleDependOn(currentBundle.name, bundle.name))
                {
                    return(BMGUIStyles.GetIcon("sharedAsset"));
                }
            }
        }

        bundleList = BundleManager.GetRelatedBundles(guid);
        if (bundleList != null && bundleList.Count > 1)
        {
            foreach (BundleData bundle in bundleList)
            {
                if (bundle.name == currentBundle.name)
                {
                    continue;
                }

                if (!BundleManager.IsBundleDependOn(bundle.name, currentBundle.name) &&
                    !BundleManager.IsBundleDependOn(currentBundle.name, bundle.name))
                {
                    return(BMGUIStyles.GetIcon("duplicatedDepend"));
                }
            }
        }

        return(null);
    }
    static void OnPostprocessAllAssets(string[] importAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPathes)
    {
#if IIPS
        List <string> changedAssets = new List <string>();
        changedAssets.AddRange(importAssets);
        changedAssets.AddRange(deletedAssets);
        changedAssets.AddRange(movedFromPathes);

        List <string> createdAssets = new List <string>();
        createdAssets.AddRange(importAssets);
        createdAssets.AddRange(movedAssets);

        bool dataChanged = false;
        foreach (string assetPath in changedAssets)
        {
            List <BundleData> bundles = BundleManager.GetRelatedBundles(assetPath);
            if (bundles == null)
            {
                continue;
            }

            foreach (BundleData bundle in bundles.ToArray())            // Use ToArray to make a copy to prevent change the org bundle list.
            {
                BundleManager.RefreshBundleDependencies(bundle);
                dataChanged = true;
            }
        }

        foreach (string assetPath in createdAssets)
        {
            foreach (BundleData bundle in BundleManager.bundles)
            {
                foreach (string include in bundle.includs)
                {
                    if (assetPath.Contains(include))
                    {
                        BundleManager.RefreshBundleDependencies(bundle);
                        dataChanged = true;
                    }
                }
            }
        }

        if (dataChanged)
        {
            BMDataAccessor.SaveBundleData();
        }
#endif
    }
Exemplo n.º 4
0
    static Texture2D GetSharedIconOfInlucde(string guid)
    {
        var includeBundleList = BundleManager.GetIncludeBundles(guid);

        if (includeBundleList != null && includeBundleList.Count > 1)
        {
            foreach (BundleData bundle in includeBundleList)
            {
                if (bundle.name == currentBundle.name)
                {
                    continue;
                }

                if (BundleManager.IsBundleDependOn(currentBundle.name, bundle.name))
                {
                    return(BMGUIStyles.GetIcon("sharedAsset"));
                }
                else if (!BundleManager.IsBundleDependOn(bundle.name, currentBundle.name))
                {
                    return(BMGUIStyles.GetIcon("duplicatedInclude"));
                }
            }
        }

        var exIncludeBundleList = BundleManager.GetExIncludeBundles(guid);

        if (exIncludeBundleList != null && exIncludeBundleList.Count > 1)
        {
            foreach (BundleData bundle in exIncludeBundleList)
            {
                if (bundle.name == currentBundle.name)
                {
                    continue;
                }

                if (BundleManager.IsBundleDependOn(currentBundle.name, bundle.name))
                {
                    return(BMGUIStyles.GetIcon("sharedAsset"));
                }
                else if (!BundleManager.IsBundleDependOn(bundle.name, currentBundle.name))
                {
                    return(BMGUIStyles.GetIcon("duplicatedInclude"));
                }
            }
        }

        var dependBundleList = BundleManager.GetRelatedBundles(guid);

        if (dependBundleList != null && dependBundleList.Count > 0)
        {
            foreach (BundleData bundle in dependBundleList)
            {
                if (bundle.name == currentBundle.name)
                {
                    continue;
                }

                if (BundleManager.IsBundleDependOn(bundle.name, currentBundle.name))
                {
                    return(BMGUIStyles.GetIcon("dependedAsset"));
                }
            }
        }

        return(null);
    }