Unity 保存游戏效果图片,并显示;
方案1:截屏保存,再显示。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
例1:
public Material image;
void Awake(){
Application.CaptureScreenshot("wuk.png");
}
void Start () {
StartCoroutine(getCapture());
}
IEnumerator getCapture(){
path=Application.persistentDataPath;
Debug.Log("path "+path);
www=new WWW("file://"+path+"/wuk.png");
yield return www;
image.mainTexture=www.texture;
}
方案2:保存指定屏幕区域为png,并显示;
核心知识:
Texture2D.ReadPixels;System.IO.File.WriteAllBytes;
关键方法:
Texture2D.ReadPixels; Texture2D.Apply();Texture2D.EncodeToPHG;
例1:
string path=Application.persistentDataPath+"/wukuaTurret.jpg";
public Material image;
IEnumerator getTexture2d() {
yield return new WaitForEndOfFrame();
Texture2D t = new Texture2D(200, 180);
t.ReadPixels(new Rect(200, 320, 200, 180), 0, 0, false);
t.Apply();
byte[] byt = t.EncodeToPNG();
System.IO.File.WriteAllBytes(path, byt);
}
IEnumerator getCaptureFf(){
path=Application.persistentDataPath;
Debug.Log("path "+path);
www=new WWW("file://"+path+"/Screenshot.png");
yield return www;
image.mainTexture=www.texture;
}