/// <summary>
                /// 初始化加载资源代理的新实例。
                /// </summary>
                /// <param name="loadResourceAgentHelper">加载资源代理辅助器。</param>
                /// <param name="resourceHelper">资源辅助器。</param>
                /// <param name="resourceLoader">加载资源器。</param>
                /// <param name="readOnlyPath">资源只读区路径。</param>
                /// <param name="readWritePath">资源读写区路径。</param>
                /// <param name="decryptResourceCallback">解密资源回调函数。</param>
                public LoadResourceAgent(ILoadResourceAgentHelper loadResourceAgentHelper, IResourceHelper resourceHelper, ResourceLoader resourceLoader, string readOnlyPath, string readWritePath, DecryptResourceCallback decryptResourceCallback)
                {
                    if (loadResourceAgentHelper == null)
                    {
                        throw new GameFrameworkException("Load resource agent helper is invalid.");
                    }

                    if (resourceHelper == null)
                    {
                        throw new GameFrameworkException("Resource helper is invalid.");
                    }

                    if (resourceLoader == null)
                    {
                        throw new GameFrameworkException("Resource loader is invalid.");
                    }

                    if (decryptResourceCallback == null)
                    {
                        throw new GameFrameworkException("Decrypt resource callback is invalid.");
                    }

                    m_Helper                  = loadResourceAgentHelper;
                    m_ResourceHelper          = resourceHelper;
                    m_ResourceLoader          = resourceLoader;
                    m_ReadOnlyPath            = readOnlyPath;
                    m_ReadWritePath           = readWritePath;
                    m_DecryptResourceCallback = decryptResourceCallback;
                    m_Task = null;
                }
                public static ResourceObject Create(string name, object target, IResourceHelper resourceHelper, ResourceLoader resourceLoader)
                {
                    if (resourceHelper == null)
                    {
                        throw new GameFrameworkException("Resource helper is invalid.");
                    }

                    if (resourceLoader == null)
                    {
                        throw new GameFrameworkException("Resource loader is invalid.");
                    }

                    ResourceObject resourceObject = ReferencePool.Acquire <ResourceObject>();

                    resourceObject.Initialize(name, target);
                    resourceObject.m_ResourceHelper = resourceHelper;
                    resourceObject.m_ResourceLoader = resourceLoader;
                    return(resourceObject);
                }
 public ResourceObject()
 {
     m_DependencyResources = new List <object>();
     m_ResourceHelper      = null;
     m_ResourceLoader      = null;
 }
                public static AssetObject Create(string name, object target, List <object> dependencyAssets, object resource, IResourceHelper resourceHelper, ResourceLoader resourceLoader)
                {
                    if (dependencyAssets == null)
                    {
                        throw new GameFrameworkException("Dependency assets is invalid.");
                    }

                    if (resource == null)
                    {
                        throw new GameFrameworkException("Resource is invalid.");
                    }

                    if (resourceHelper == null)
                    {
                        throw new GameFrameworkException("Resource helper is invalid.");
                    }

                    if (resourceLoader == null)
                    {
                        throw new GameFrameworkException("Resource loader is invalid.");
                    }

                    AssetObject assetObject = ReferencePool.Acquire <AssetObject>();

                    assetObject.Initialize(name, target);
                    assetObject.m_DependencyAssets.AddRange(dependencyAssets);
                    assetObject.m_Resource       = resource;
                    assetObject.m_ResourceHelper = resourceHelper;
                    assetObject.m_ResourceLoader = resourceLoader;

                    foreach (object dependencyAsset in dependencyAssets)
                    {
                        int referenceCount = 0;
                        if (resourceLoader.m_AssetDependencyCount.TryGetValue(dependencyAsset, out referenceCount))
                        {
                            resourceLoader.m_AssetDependencyCount[dependencyAsset] = referenceCount + 1;
                        }
                        else
                        {
                            resourceLoader.m_AssetDependencyCount.Add(dependencyAsset, 1);
                        }
                    }

                    return(assetObject);
                }
示例#5
0
                /// <summary>
                /// 初始化加载资源代理的新实例。
                /// </summary>
                /// <param name="loadResourceAgentHelper">加载资源代理辅助器。</param>
                /// <param name="resourceHelper">资源辅助器。</param>
                /// <param name="assetPool">资源对象池。</param>
                /// <param name="resourcePool">资源对象池。</param>
                /// <param name="resourceLoader">加载资源器。</param>
                /// <param name="readOnlyPath">资源只读区路径。</param>
                /// <param name="readWritePath">资源读写区路径。</param>
                /// <param name="decryptResourceCallback">解密资源回调函数。</param>
                public LoadResourceAgent(ILoadResourceAgentHelper loadResourceAgentHelper, IResourceHelper resourceHelper, IObjectPool <AssetObject> assetPool, IObjectPool <ResourceObject> resourcePool, ResourceLoader resourceLoader, string readOnlyPath, string readWritePath, DecryptResourceCallback decryptResourceCallback)
                {
                    if (loadResourceAgentHelper == null)
                    {
                        throw new System.Exception("Load resource agent helper is invalid.");
                    }

                    if (resourceHelper == null)
                    {
                        throw new System.Exception("Resource helper is invalid.");
                    }

                    if (assetPool == null)
                    {
                        throw new System.Exception("Asset pool is invalid.");
                    }

                    if (resourcePool == null)
                    {
                        throw new System.Exception("Resource pool is invalid.");
                    }

                    if (resourceLoader == null)
                    {
                        throw new System.Exception("Resource loader is invalid.");
                    }

                    if (decryptResourceCallback == null)
                    {
                        throw new System.Exception("Decrypt resource callback is invalid.");
                    }

                    m_Helper                      = loadResourceAgentHelper;
                    m_ResourceHelper              = resourceHelper;
                    m_AssetPool                   = assetPool;
                    m_ResourcePool                = resourcePool;
                    m_ResourceLoader              = resourceLoader;
                    m_ReadOnlyPath                = readOnlyPath;
                    m_ReadWritePath               = readWritePath;
                    m_DecryptResourceCallback     = decryptResourceCallback;
                    m_LoadingDependencyAssetNames = new LinkedList <string>();
                    m_Task            = null;
                    m_WaitingType     = WaitingType.None;
                    m_LoadingAsset    = false;
                    m_LoadingResource = false;
                }
                public ResourceObject(string name, object target, IResourceHelper resourceHelper, ResourceLoader resourceLoader)
                    : base(name, target)
                {
                    if (resourceHelper == null)
                    {
                        throw new GameFrameworkException("Resource helper is invalid.");
                    }

                    if (resourceLoader == null)
                    {
                        throw new GameFrameworkException("Resource loader is invalid.");
                    }

                    m_DependencyResources = new List <object>();
                    m_ResourceHelper      = resourceHelper;
                    m_ResourceLoader      = resourceLoader;
                }