中文名字的assetbundle移动端加载问题为解决,仅仅是中文显示出来了,但是还是没能加载出来

using UnityEngine;
using System.Collections;
using System.IO;
using System.Collections.Generic;
using System;

public class Text : MonoBehaviour
{

string DownPath = "";//下载地址

ArrayList infoall; //文本中每行的内容

public GUISkin skin;//皮肤资源,这里用于显示中文
void Start()

{


DeleteFile(Application.persistentDataPath, "FileName.txt"); //删除文件

CreateFile(Application.persistentDataPath, "FileName.txt", "中文的.assetbundle"); //创建文件,共写入3次数据

infoall = LoadFile(Application.persistentDataPath, "FileName.txt");//得到文本中每一行的内容

 

}

//读取一个资源
private IEnumerator LoadMainGameObject(string path)
{
WWW bundle = new WWW(path);//初始化
yield return bundle;
yield return Instantiate(bundle.assetBundle.mainAsset);//实例化物体到游戏中
Debug.Log("+++++++++++++++++++++++++++Load successful!!");
bundle.assetBundle.Unload(false);
}

//从服务器下载资源
private IEnumerator DownLoadToLocal(string url)
{
WWW.EscapeURL(url); //url编码
WWW www = new WWW(url);//访问url
WWW.UnEscapeURL(url); //url解码
string filename = url.Substring(url.LastIndexOf('/') + 1); //根据URL获取文件的名字。
yield return www; //等待下载
if (www.error == null)
{

FileStream fs = File.Create(Application.persistentDataPath + "/" + filename); //path为你想保存文件的路径。
DownPath = Application.persistentDataPath + "/" + filename; //把下载的数据写到文件
fs.Write(www.bytes, 0, www.bytes.Length);
fs.Close();
Debug.Log(filename + "下载完成");

}
else
{
Debug.Log(www.error);
}
}
/**
* path:文件创建目录
* name:文件的名称
* info:写入的内容
*/
void CreateFile(string path, string name, string info)
{

StreamWriter sw;//文件流信息
FileInfo t = new FileInfo(path + "//" + name);
if (!t.Exists)
{

sw = t.CreateText();//如果此文件不存在则创建
}
else
{

sw = t.AppendText();//如果此文件存在则打开
}

sw.WriteLine(info);//以行的形式写入信息
sw.Close();//关闭流
sw.Dispose(); //销毁流
}

/**
* path:读取文件的路径
* name:读取文件的名称
*/
ArrayList LoadFile(string path, string name)
{

StreamReader sr = null;//使用流的形式读取
try
{
sr = File.OpenText(path + "//" + name);
}
catch (Exception e)
{

return null;//路径与名称未找到文件则直接返回空
}
string line;
ArrayList arrlist = new ArrayList();
while ((line = sr.ReadLine()) != null)
{
//一行一行的读取
//将每一行的内容存入数组链表容器中
arrlist.Add(line);
}

sr.Close();//关闭流
sr.Dispose();//销毁流
return arrlist;//将数组链表容器返回
}

/**
* path:删除文件的路径
* name:删除文件的名称
*/

void DeleteFile(string path, string name)
{
File.Delete(path + "//" + name);

}

void OnGUI()
{

GUI.skin = skin;//用新的皮肤资源,显示中文
foreach (string str in infoall)//读取文件中的所有内容
{
//绘制在屏幕当中
// GUILayout.Label("str is"+str);

if (GUI.Button(new Rect(50, 100, 100, 100), "Main Assetbundle"))
{
//从服务器下载资源
StartCoroutine(DownLoadToLocal("http://192.168.0.98/MyItems/TankCard/中文的.assetbundle"));
StartCoroutine(DownLoadToLocal("http://192.168.0.98/MyItems/TankCard/Cylinder.assetbundle"));


//从本地加载资源
StartCoroutine(LoadMainGameObject("jar:file://" + Application.dataPath + "!/assets/" + str));
GUILayout.Label("jar:file://" + Application.dataPath + "!/assets/" + str);
StartCoroutine(LoadMainGameObject("jar:file://" + Application.dataPath + "!/assets/" + "Cylinder.assetbundle"));

}
}



}

}

posted @ 2016-07-04 10:55  Fei非非  阅读(205)  评论(0编辑  收藏  举报