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