예제 #1
0
        public static void UnRegisterAsset(AssetInfo asset, string bundle)
        {
            if (m_DependencyTracker == null || asset == null)
            {
                return;
            }

            if (m_DependencyTracker.ContainsKey(asset.fullAssetName))
            {
                m_DependencyTracker[asset.fullAssetName].Remove(bundle);
                int count = m_DependencyTracker[asset.fullAssetName].Count;
                switch (count)
                {
                case 0:
                    m_DependencyTracker.Remove(asset.fullAssetName);
                    break;

                case 1:
                    asset.SetMessageFlag(MessageSystem.MessageFlag.AssetsDuplicatedInMultBundles, false);
                    break;

                default:
                    break;
                }
            }
        }
예제 #2
0
        public static int RegisterAsset(AssetInfo asset, string bundle)
        {
            if (m_DependencyTracker.ContainsKey(asset.fullAssetName))
            {
                m_DependencyTracker[asset.fullAssetName].Add(bundle);
                int count = m_DependencyTracker[asset.fullAssetName].Count;
                if (count > 1)
                {
                    asset.SetMessageFlag(MessageSystem.MessageFlag.AssetsDuplicatedInMultBundles, true);
                }
                return(count);
            }

            var bundles = new HashSet <string>();

            bundles.Add(bundle);
            m_DependencyTracker.Add(asset.fullAssetName, bundles);
            return(1);
        }