//获取内部资源贴图
public void setInsideTexture()
{
Texture2D texture = Resources.Load(texture_url) as Texture2D;
Renderer renderer = GetComponent<Renderer>();
renderer.material.mainTexture = texture;
}
//获取外部资源贴图(本地路径)
public void setExternalTextureByIO()
{
//创建文件读取流
FileStream fileStream = new FileStream(texture_url, FileMode.Open,
FileAccess.Read);
fileStream.Seek(0, SeekOrigin.Begin);
//创建文件长度缓冲区
byte[] bytes = new byte[fileStream.Length];
//读取文件
fileStream.Read(bytes, 0, (int) fileStream.Length);
//释放文件读取流
fileStream.Close();
fileStream.Dispose();
fileStream = null;
//创建Texture
int width = 800;
int height = 640;
Texture2D texture = new Texture2D(width, height);
texture.LoadImage(bytes);
Renderer renderer = GetComponent<Renderer>();
renderer.material.mainTexture = texture;
}
/// <summary>
/// 以WWW方式进行加载
/// </summary>
private void setExternalTextureByWWW()
{
StartCoroutine(LoadWWW());
}
IEnumerator LoadWWW()
{
//请求WWW
WWW www = new WWW(texture_url);
yield return www;
Renderer renderer = GetComponent<Renderer>();
renderer.material.mainTexture = www.texture;
Debug.Log(www.ToString());
Stream outStream = File.Create(ExportClass.prePath + "test.png");
byte[] buffer = www.bytes;
outStream.Write(buffer, 0, buffer.Length);
outStream.Close();
}
/// <summary>
/// 根据json image中的base64数据还原贴图.
/// </summary>
/// <param name="imageStr"></param>
private void setTextureByJsonData(string imageStr)
{
Debug.Log("开始 设置 材质球 来自json的贴图...");
var base64Data = Regex.Match(imageStr, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
byte[] bytes = Convert.FromBase64String(base64Data);
Texture2D tex = new Texture2D(100,100);
tex.LoadImage(bytes);
Renderer renderer = game.GetComponent<Renderer>();
renderer.material.SetTexture("_MainTex",tex);
}