Exemplo n.º 1
0
        public override object LoadResource(string resourceName, ResourceLoadMode resourceLoadMode)
        {
            object obj2 = null;

            switch (resourceLoadMode)
            {
            case ResourceLoadMode.Local:
            case ResourceLoadMode.LocalAndFragment:
                return(LoadFromLocalAssemblies(resourceName));

            case ResourceLoadMode.ClassSpace:
                obj2 = LoadFromLocalAssemblies(resourceName);
                if (obj2 == null)
                {
                    obj2 = LoadFromDependencyAssemblies(resourceName);
                    if (obj2 == null)
                    {
                        obj2 = LoadFromDependentBundles(resourceName);
                        if (obj2 != null)
                        {
                            return(obj2);
                        }
                    }
                    return(obj2);
                }
                return(obj2);
            }
            return(obj2);
        }
Exemplo n.º 2
0
        public override object LoadResource(string resourceName, ResourceLoadMode resourceLoadMode)
        {
            Predicate <IBundleMetadata>         match      = null;
            Predicate <IFragmentBundleMetadata> predicate2 = null;
            object result = base.LoadResource(resourceName, resourceLoadMode);

            if ((result == null) && ((resourceLoadMode == ResourceLoadMode.LocalAndFragment) || (resourceLoadMode == ResourceLoadMode.ClassSpace)))
            {
                if (match == null)
                {
                    match = a => a.BundleID == Bundle.BundleID;
                }
                Interface1 interface2 = FrameworkAdaptor.State.Bundles.Find(match) as Interface1;
                if (predicate2 == null)
                {
                    predicate2 = delegate(IFragmentBundleMetadata a) {
                        IBundle bundle = Framework.Bundles.Find(bundle => bundle.BundleID == a.BundleID);
                        if (bundle == null)
                        {
                            return(false);
                        }
                        return((result = bundle.LoadResource(resourceName, resourceLoadMode)) != null);
                    };
                }
                if (interface2.Fragments.Exists(predicate2))
                {
                    return(result);
                }
            }
            return(result);
        }
Exemplo n.º 3
0
 public override object LoadResource(string resourceName, ResourceLoadMode loadMode)
 {
     if (base.ActivatorPolicy == ActivatorPolicy.Lazy)
     {
         this.ActivateForStarting();
     }
     return(base.LoadResource(resourceName, loadMode));
 }
Exemplo n.º 4
0
 /// <summary>
 /// 根据资源名称和加载模式加载指定的资源
 /// </summary>
 /// <param name="resourceName"></param>
 /// <param name="mode"></param>
 /// <returns></returns>
 public object LoadResource(string resourceName, ResourceLoadMode mode)
 {
     if (this.bundleLoader != null)
     {
         return(bundleLoader.LoadResource(resourceName, mode));
     }
     return(null);
 }
Exemplo n.º 5
0
 public static string GetResourceInitString(ResourceLoadMode loadMode)
 {
     var resources = ServiceLocator.GetInstance<IResourceMapService>().GetResourcesByMode(loadMode);
     var result = "";
     foreach (var resource in resources)
         result += String.Format("Loader.dependsOn('{0}'); \n", resource.Name);
     return result;
 }
 /// <summary>
 /// 设置加载器
 /// </summary>
 /// <param name="loadMode">加载模式</param>
 /// <param name="isEditorMode">是否是编辑器模式</param>
 /// <param name="manifestName">AB包清单名称</param>
 public void SetLoader(ResourceLoadMode loadMode, bool isEditorMode, string manifestName)
 {
     LoadMode                = loadMode;
     IsEditorMode            = isEditorMode;
     AssetBundleRootPath     = Application.persistentDataPath + "/";
     AssetBundleManifestName = manifestName;
     _loadWait               = new WaitUntil(() => { return(!_isLoading); });
 }
Exemplo n.º 7
0
 /// <summary>
 /// 初始化
 /// </summary>
 public void OnInitialization(ResourceLoadMode loadMode, bool isEditorMode, bool isCacheAssetBundle, string manifestName)
 {
     LoadMode                = loadMode;
     IsEditorMode            = isEditorMode;
     AssetBundleRootPath     = Application.streamingAssetsPath + "/";
     IsCacheAssetBundle      = isCacheAssetBundle;
     AssetBundleManifestName = manifestName;
     _loadWait               = new WaitUntil(() => { return(!_isLoading); });
 }
Exemplo n.º 8
0
 public void MapResource(string name, ResourceType resType, string url, ResourceLoadMode loadMode, string loadBefore = "", string loadAfter = "")
 {
     if (_registered.ContainsKey(name))
         throw new Exception("Recurso já existe: " + name);
     var map = new ResourceMap(name, resType, url, loadMode, loadBefore, loadAfter);
     _resources[loadMode].Add(map);
     _mappings.Add(map);
     _registered[name] = map;
 }
Exemplo n.º 9
0
    public void SetResourceLoadMode(ResourceLoadMode mode)
    {
#if UNITY_EDITOR
        loadMode = mode;
#else
        loadMode = ResourceLoadMode.AssetBundle;
#endif
        InitLoader();
    }
Exemplo n.º 10
0
        public override object LoadResource(string resourceName, ResourceLoadMode resourceLoadMode)
        {
            var assembly = GetAssembly();

            if (assembly != null)
            {
                return(assembly.GetManifestResourceStream(resourceName));
            }
            return(null);
        }
Exemplo n.º 11
0
 public ResourceMap(string name, ResourceType resType, string url, ResourceLoadMode loadMode, string loadBefore = "", string loadAfter = "")
 {
     this.Name       = name;
     this.Type       = resType;
     this.Url        = url;
     this.LoadMode   = loadMode;
     this.LoadBefore = loadBefore;
     this.LoadAfter  = LoadAfter;
     this.Order      = Interlocked.Increment(ref _order);
 }
Exemplo n.º 12
0
 public ResourceMap(string name, ResourceType resType, string url, ResourceLoadMode loadMode, string loadBefore = "", string loadAfter = "")
 {
     this.Name = name;
     this.Type = resType;
     this.Url = url;
     this.LoadMode = loadMode;
     this.LoadBefore = loadBefore;
     this.LoadAfter = LoadAfter;
     this.Order = Interlocked.Increment(ref _order);
 }
Exemplo n.º 13
0
        public override object LoadResource(string resourceName, ResourceLoadMode resourceLoadMode)
        {
            AssemblyLoader loader = FindDepdentAssemblyLoader();

            if (loader != null)
            {
                return(loader.LoadResource(resourceName, resourceLoadMode));
            }
            return(null);
        }
Exemplo n.º 14
0
        public static string GetResourceInitString(ResourceLoadMode loadMode)
        {
            var resources = ServiceLocator.GetInstance <IResourceMapService>().GetResourcesByMode(loadMode);
            var result    = "";

            foreach (var resource in resources)
            {
                result += String.Format("Loader.dependsOn('{0}'); \n", resource.Name);
            }
            return(result);
        }
Exemplo n.º 15
0
 /// <summary>
 /// 获取图片资源
 /// </summary>
 /// <param name="resourceName"></param>
 /// <param name="mode"></param>
 /// <param name="bundle"></param>
 /// <returns></returns>
 public static Bitmap LoadImage(string resourceName, ResourceLoadMode mode, IBundle bundle)
 {
     using (var stream = (Stream)bundle.LoadResource(resourceName, mode))
     {
         if (stream == null)
         {
             return(null);
         }
         return((Bitmap)Bitmap.FromStream(stream));
     }
 }
Exemplo n.º 16
0
        public void MapResource(string name, ResourceType resType, string url, ResourceLoadMode loadMode, string loadBefore = "", string loadAfter = "")
        {
            if (_registered.ContainsKey(name))
            {
                throw new Exception("Recurso já existe: " + name);
            }
            var map = new ResourceMap(name, resType, url, loadMode, loadBefore, loadAfter);

            _resources[loadMode].Add(map);
            _mappings.Add(map);
            _registered[name] = map;
        }
Exemplo n.º 17
0
        /// <summary>
        /// 加载资源
        /// </summary>
        /// <param name="resourceName"></param>
        /// <param name="loadMode"></param>
        /// <returns></returns>
        public override object LoadResource(string resourceName, ResourceLoadMode loadMode)
        {
            IBundleLoader loader = this.BundleLoader;

            if (loader == null)
            {
                return(null);
            }
            object result = loader.LoadResource(resourceName, loadMode);

            return(result);
        }
Exemplo n.º 18
0
 public object LoadResource(string resourceName, ResourceLoadMode mode)
 {
     if (mode == ResourceLoadMode.ClassSpace)
     {
         return(this.assembly.GetManifestResourceStream(resourceName));
     }
     else if (mode == ResourceLoadMode.Local)
     {
         string path = Path.Combine(bundle.Location, resourceName);
         return(File.Open(path, FileMode.Open, FileAccess.ReadWrite));
     }
     return(null);
 }
Exemplo n.º 19
0
        public static void Initialize(ResourceLoadMode mode, string abDir = null, string manifestBundleName = null)
        {
            switch (mode)
            {
#if UNITY_EDITOR
            case ResourceLoadMode.EDITOR:
                mResourceLoader = new ResourceEditorLoader();
                break;
#endif
            case ResourceLoadMode.AB:
                mResourceLoader = new ResourceAbLoader(abDir, manifestBundleName);
                break;
            }
        }
Exemplo n.º 20
0
 /// <summary>
 /// 根据资源名称和加载模式加载指定的资源
 /// </summary>
 /// <param name="resourceName"></param>
 /// <param name="mode"></param>
 /// <returns></returns>
 public override object LoadResource(string resourceName, ResourceLoadMode mode)
 {
     if (mode == ResourceLoadMode.Local)
     {
         return(LoadResourceFromLocal(this.bundle, resourceName));
     }
     else if (mode == ResourceLoadMode.FragmentAndLocal)
     {
         return(LoadResourceFromFragmentLocal(resourceName));
     }
     else
     {
         return(LoadResourceFromAssemblies(resourceName));
     }
 }
Exemplo n.º 21
0
        public virtual object LoadResource(string resourceName, ResourceLoadMode loadMode)
        {
            object    obj2;
            Stopwatch stopwatch = new Stopwatch();

            try
            {
                stopwatch.Start();
                obj2 = BundleLoaderProxy.LoadResource(resourceName, loadMode);
            }
            finally
            {
                stopwatch.Stop();
                FileLogUtility.Verbose(string.Format(Messages.LoadResourceTimeCounter, new object[] { stopwatch.ElapsedMilliseconds, resourceName, SymbolicName, Version }));
            }
            return(obj2);
        }
Exemplo n.º 22
0
    /// <summary>
    /// 初始化资源加载相关的
    /// </summary>
    public void init()
    {
#if UNITY_EDITOR
        mResLoadMode = (ResourceLoadMode)PlayerPrefs.GetInt(ResLoadModeKey, (int)ResourceLoadMode.AssetBundle);
        if (mResLoadMode == ResourceLoadMode.AssetBundle)
        {
            CurrentResourceModule = new AssetBundleModule();
        }
        else if (mResLoadMode == ResourceLoadMode.AssetDatabase)
        {
            CurrentResourceModule = new AssetDatabaseModule();
        }
#else
        //非编辑器只支持AssetBundle模式
        mResLoadMode          = ResourceLoadMode.AssetBundle;
        CurrentResourceModule = new AssetBundleModule();
#endif
        Debug.Log(string.Format("当前资源加载模式 : {0}", mResLoadMode));
        CurrentResourceModule.init();
    }
Exemplo n.º 23
0
 public override object LoadResource(string resourceName, ResourceLoadMode loadMode)
 {
     CheckValidState();
     return(null);
 }
Exemplo n.º 24
0
 public IEnumerable <IResourceMap> GetResourcesByMode(ResourceLoadMode mode)
 {
     return(_resources[mode]);
 }
Exemplo n.º 25
0
 public object LoadResource(string resourceName, ResourceLoadMode resourceLoadMode)
 {
     CreateBundleLoader();
     return(_loader.LoadResource(resourceName, resourceLoadMode));
 }
Exemplo n.º 26
0
 public override object LoadResource(string resourceName, ResourceLoadMode loadMode)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 27
0
 public override object LoadResource(string resourceName, ResourceLoadMode resourceLoadMode)
 {
     Equals(resourceLoadMode, ResourceLoadMode.ClassSpace);
     return(FindDepdentBundle().LoadResource(resourceName, resourceLoadMode));
 }
Exemplo n.º 28
0
 public IEnumerable<IResourceMap> GetResourcesByMode(ResourceLoadMode mode)
 {
     return _resources[mode];
 }
Exemplo n.º 29
0
 /// <summary>
 /// 加载资源
 /// </summary>
 /// <param name="resourceName"></param>
 /// <param name="loadMode"></param>
 /// <returns></returns>
 public override object LoadResource(string resourceName, ResourceLoadMode loadMode)
 {
     return(null);
 }
Exemplo n.º 30
0
 /// <summary>
 /// 从当前插件中根据资源名称获取资源
 /// </summary>
 /// <param name="resourceName"></param>
 /// <param name="loadMode"></param>
 /// <returns></returns>
 public abstract object LoadResource(string resourceName, ResourceLoadMode loadMode);