unity3d下载Obb分包文件

下载OBB插件包

http://pan.baidu.com/s/1c0ouRZE

1、导入插件

注意事项:

如果项目中已经存在Android 插件,需要merge导入的xml文件例如 AndroidManifest.xml和strings.xml文件,否则编译或运行的时候可能会报错.

2、修改GooglePlayDownloader.cs 文件中的key改成你的key.

3、勾选 Player Settings ->Publishing Settings中的split Application Binary.

4、编译发布

以下是结合Ngui进度条代码示例:

using UnityEngine;
using System.Collections;

public class DownLoadObb : MonoBehaviour {

    private string expPath;
    private string logtxt;
    private bool alreadyLogged = false;
    
    private bool downloadStarted = false;
    private string uri;
    //    private string mainPath;
    
    public GameObject downloadButton;

    public UILabel progress;
    
    public UISlider progressBar;
    
    void Awake(){
        
    }
    void Start(){
        if (!GooglePlayDownloader.RunningOnAndroid())
        {
        
            return;
        }
        
        expPath = GooglePlayDownloader.GetExpansionFilePath();
        if (expPath == null)
        {

            return ;
        }
        else
        {
            string mainPath = GooglePlayDownloader.GetMainOBBPath(expPath);
            //            string patchPath = GooglePlayDownloader.GetPatchOBBPath(expPath);
            if (mainPath == null ){
                downloadButton.SetActive(true);
                
            }
            StartCoroutine(loadLevel());
        }
    }
    
    public void DownLoad(){
        GooglePlayDownloader.FetchOBB();
    }

    void Update (){
        if(!www.isDone){
            progress.text = "Loading data file... "+(www.progress*100).ToString("f2")+"%";
            progressBar.sliderValue = www.progress;
        }
    }
    
    
    WWW www;
    IEnumerator loadLevel(){
        string mainPath;
        do{
            yield return new WaitForSeconds(0.5f);
            mainPath = GooglePlayDownloader.GetMainOBBPath(expPath); 
        }
        while(mainPath == null);
        
        progress.gameObject.SetActive(true);
        progressBar.gameObject.SetActive(true);
        downloadButton.SetActive(false);
    
        if(downloadStarted == false){
            downloadStarted = true;
            
            uri = "file://" + mainPath;
            
            www = WWW.LoadFromCacheOrDownload(uri,0);
            
            yield return www;
            
            if(www.error == null){
                Application.LoadLevel("Menu");
            }
        }
    }
}
原文地址:https://www.cnblogs.com/88999660/p/3678180.html