Unity截圖儲存到本地,安卓手機
阿新 • • 發佈:2018-11-09
1、簡單粗暴 ,直接上程式碼。
using UnityEngine; using System.Collections; using System.IO; public class SavedScreen : MonoBehaviour { string path = ""; void Start() { // 開啟一個協程 StartCoroutine(UploadPNG()); print(Application.persistentDataPath); path = "D:/"; } // 定義一個協程 IEnumerator UploadPNG() { // 因為"WaitForEndOfFrame"在OnGUI之後執行 // 所以我們只在渲染完成之後才讀取螢幕上的畫面 yield return new WaitForEndOfFrame(); int width = Screen.width; int height = Screen.height; // 建立一個螢幕大小的紋理,RGB24 位格(24位格沒有透明通道,32位的有) Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false); // 讀取螢幕內容到我們自定義的紋理圖片中 tex.ReadPixels(new Rect(0, 0, width, height), 0, 0); // 儲存前面對紋理的修改 tex.Apply(); // 編碼紋理為PNG格式 byte[] bytes = tex.EncodeToPNG(); // 銷燬沒用的圖片紋理 Destroy(tex); // 將位元組儲存成圖片,這個路徑只能在PC端對圖片進行讀寫操作 File.WriteAllBytes(Application.dataPath + "/onPcSavedScreen.png", bytes); // 這個路徑會將圖片儲存到手機的沙盒中,這樣就可以在手機上對其進行讀寫操作了 File.WriteAllBytes(Application.persistentDataPath + "/onMobileSavedScreen.png", bytes); //儲存到D盤 File.WriteAllBytes(path+ "/onMeKey.png", bytes); } }
2、放上效果圖
儲存到D盤的
儲存到Application.dataPath
儲存到Application.persistentDataPath
哈哈 結束 自己測試吧!!!!!!!!
這個方法我沒有在手機上測試,之後我改了路徑測試了一下 在手機上是找不到的,所以我就查文件,尋找到了另一種方法,可以儲存到安卓手機相簿,看我下一篇文件······