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); } } } }
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; }