using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; public class Textureload : MonoBehaviour { public string url = "https://bchy.oss-cn-qingdao.aliyuncs.com/Work/5_2_0.png"; public GameObject go; string path; void Start() { PhotoButtonClick(); } /// /// 拍照按钮的功能实现 /// private void PhotoButtonClick() { string fName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".png";//用时间作为图片的名称,保证唯一性 PlayerPrefs.SetString("photoName", fName);//将名字存储,为了方便获取 StartCoroutine(UploadPNG("5_2_0.png", "Work")); } /// /// 下载图片 /// /// /// private IEnumerator UploadPNG(string fileName,string dic) { WWW www = new WWW(url); yield return www; byte[] bytes = www.texture.EncodeToPNG(); path = PathForFile(fileName, dic);//移动平台的判断 print("文件" + path); SaveNativeFile(bytes, path);//保存图片到本地 } /// /// 判断平台 /// /// /// public string PathForFile(string filename,string dic) { if (Application.platform == RuntimePlatform.IPhonePlayer) { string path = Application.persistentDataPath.Substring(0, Application.persistentDataPath.Length - 5); path = path.Substring(0, path.LastIndexOf('/')); path = Path.Combine(path, "Documents"); path = Path.Combine(path, dic); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } return Path.Combine(path, filename); } else if (Application.platform == RuntimePlatform.Android) { string path = Application.persistentDataPath; path = path.Substring(0, path.LastIndexOf('/')); path = Path.Combine(path, dic); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } return Path.Combine(path, filename); } else { string path = Application.dataPath; path = path.Substring(0, path.LastIndexOf('/')); path = Path.Combine(path, dic); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } return Path.Combine(path, filename); } } /// /// 在本地保存文件 /// /// /// public void SaveNativeFile(byte[] bytes, string path) { FileStream fs = new FileStream(path, FileMode.Create); fs.Write(bytes, 0, bytes.Length); fs.Flush(); fs.Close(); } void OnGUI() { if (GUI.Button(new Rect(200, 200, 120, 30), "Click")) { ShowNativeTexture(); } } //上述是保存在移动平台的代码,下面则是读取到移动平台的图片 /// /// 显示图片 /// public void ShowNativeTexture() { go.GetComponent().material.mainTexture = GetNativeFile(path); } /// /// 获取到本地的图片 /// /// public Texture2D GetNativeFile(string path) { try { var pathName = path; var bytes = ReadFile(pathName); int width = Screen.width; int height = Screen.height; var texture = new Texture2D(width, height); texture.LoadImage(bytes); return texture; } catch (Exception c) { } return null; } public byte[] ReadFile(string filePath) { var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); fs.Seek(0, SeekOrigin.Begin); var binary = new byte[fs.Length]; fs.Read(binary, 0, binary.Length); fs.Close(); return binary; } } //Global.SetPhotoTexture("Work" ,idex, "https://bchy.oss-cn-qingdao.aliyuncs.com", (myt) => { // _cartoonObj.transform.Find("Icon").GetComponent().mainTexture = myt; // _cartoonObj.transform.Find("PlayerDesc_Text").GetComponent().text = this.LoadWorkImageDesc(go.name); // _cartoonObj.transform.Find("PlayerName_Text").GetComponent().text = Global.MainPlayer.GetPlayerName() + this.LoadWorkImageTitle(go.name); // this.transform.Find("CartoonPanel/Remove").gameObject.SetActive(true); // this.transform.Find("CartoonPanel/SavaPhoto").gameObject.SetActive(true); // this.transform.Find("CartoonPanel/Lottry").gameObject.SetActive(true); // if (_cartoonObj != null) // _cartoonObj.gameObject.SetActive(true); //});