1. 程式人生 > >Unity截圖儲存到本地,安卓手機

Unity截圖儲存到本地,安卓手機

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 在這裡插入圖片描述

哈哈 結束 自己測試吧!!!!!!!!
這個方法我沒有在手機上測試,之後我改了路徑測試了一下 在手機上是找不到的,所以我就查文件,尋找到了另一種方法,可以儲存到安卓手機相簿,看我下一篇文件······