Example #1
0
        internal static void Release <TObject>(IResourceLocation location, object asset) where TObject : class
        {
            IResourceProvider provider = GetResourceProvider <TObject>(location);
            int key = CResourcesLoadRecorder.GetInstanceID(asset);

            if (provider.Release(location, asset))
            {
                m_LoadRecorder.RemoveResource(key);
                if (location.HasDependencies)
                {
                    for (int i = 0; i < location.Dependencies.Count; i++)
                    {
                        Release <object>(location.Dependencies[i], null);
                    }
                }
            }
        }
Example #2
0
        private static void RuntimeInitialization()
        {
            LogUtility.Log("Runtime Initializtion");
            m_LoadRecorder = new CResourcesLoadRecorder();

            m_Locators = new List <IResourceLocator>();

            //m_Locators.Add(new LocalAssetCResourceLocator());
            m_Locators.Add(new BundleAssetCResourceLocator());

            m_ResouceProviders = new List <IResourceProvider>();

            m_ResouceProviders.Add(new CResourcePoolProvider(new BundleAssetCResourceProvider()));
            m_ResouceProviders.Add(new CResourcePoolProvider(new LocalBundleCResourceProvider()));

            // m_ResouceProviders.Add(new LocalAssetCResourceProvider());
            SceneManager.sceneUnloaded += OnSceneUnloaded;
        }