예제 #1
0
    /// <summary>
    /// 开始加载
    /// </summary>
    /// <returns>The begin.</returns>
    /// <param name="path">Path.</param>
    /// <param name="loaderTypeEnum">Loader type enum.</param>
    /// <param name="version">Version.</param>
    private IEnumerator LoaderBegin(string path, WwwLoaderTypeEnum loaderTypeEnum, int version)
    {
        // 说明,这儿只有 场景(默认是把场景打包成 Unity3D 后缀文件) 使用缓存池加载,因为不用缓存池加载方法,无法使用 Application.LoadLevel 加载场景
        // 可能是自己理解的不多,还是本来就应该是这样,这儿可以按照自己的处理方式进行调整
        if (loaderTypeEnum == WwwLoaderTypeEnum.UNITY_3D)
        {
            this.www = WWW.LoadFromCacheOrDownload(path, version);
        }
        else
        {
            this.www = new WWW(path);
        }
        yield return(this.www);

        if (!string.IsNullOrEmpty(this.www.error))
        {
            this.InvokeError(this.www.error);
        }
        else
        {
            if (this.www.isDone)
            {
                this.InvokeComplete(this.www);
            }
        }
        this.StopCoroutine(LoaderBegin(path, loaderTypeEnum, version));
    }
예제 #2
0
    public void Loader(string path,
                       WwwLoaderTypeEnum loaderTypeEnum,
                       int version,
                       WwwLoaderItem.DelegateLoaderProgress loaderProgress,
                       WwwLoaderItem.DelegateLoaderComplete loaderComplete,
                       WwwLoaderItem.DelegateLoaderError loaderError)
    {
        this.loaderProgress = loaderProgress;
        this.loaderComplete = loaderComplete;
        this.loaderError    = loaderError;

        if (this.gameObject == null)
        {
            this.gameObject      = new GameObject();
            this.gameObject.name = "ResourceLoadeManager";
        }
        this.wwwLoaderItem = this.gameObject.AddComponent <WwwLoaderItem>();

        if (this.wwwLoaderItem == null)
        {
            return;
        }

        this.wwwLoaderItem.onProgress += this.loaderProgress;
        this.wwwLoaderItem.onError    += this.loaderError;
        this.wwwLoaderItem.onComplete += this.loaderComplete;

        this.wwwLoaderItem.Loader(path, loaderTypeEnum, version);
    }
예제 #3
0
 /// <summary>
 /// 开始加载
 /// </summary>
 /// <param name="path">Path.</param>
 /// <param name="loaderTypeEnum">Loader type enum.</param>
 /// <param name="version">Version.</param>
 public void Loader(string path, WwwLoaderTypeEnum loaderTypeEnum, int version)
 {
     this.progressStatus = false;
     this.StartCoroutine(LoaderBegin(path, loaderTypeEnum, version));
 }
예제 #4
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="path">Path.</param>
 /// <param name="loaderTypeEnum">Loader type enum.</param>
 /// <param name="www">Www.</param>
 public WwwData(string path, WwwLoaderTypeEnum loaderTypeEnum, WWW www)
 {
     this.path           = path;
     this.loaderTypeEnum = loaderTypeEnum;
     this.www            = www;
 }
예제 #5
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="path">Path.</param>
 /// <param name="version">Version.</param>
 /// <param name="loaderTypeEnum">Loader type enum.</param>
 public WwwLoaderPath(string path, int version, WwwLoaderTypeEnum loaderTypeEnum)
 {
     this.path           = path;
     this.version        = version;
     this.loaderTypeEnum = loaderTypeEnum;
 }