尊者 发表于 2013-4-25 13:48

Unity保存游戏效果图片,并显示出来


方案1:截屏保存,再显示。
核心知识:
1,Application.CaptureScreenshot("wuk.png");Unity会自动截屏保存在 Application.persistentDataPath+"/"+"wuk.png";
2,WWW 网页;
3,获取权限;
<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");

yieldreturn 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");

yieldreturn www;

image.mainTexture=www.texture;

}

aaabbbsss12345 发表于 2014-4-26 10:15

好好 好那个东西 谢谢分享

aa1287537617 发表于 2014-6-6 16:35


感谢楼主的无私分享!{:soso__11402694654016840197_7:}

shadow87 发表于 2017-3-7 10:44

真心顶

尊者 发表于 2017-3-7 11:42

说的非常好

天下 发表于 2017-3-7 10:50

很好哦

尊者 发表于 2017-3-7 11:19

不错不错

csj2017 发表于 2017-3-7 11:01

LZ真是人才

老陶 发表于 2017-5-6 14:15

很不错

lj34207310 发表于 2017-5-6 13:54

顶顶多好
页: [1]
查看完整版本: Unity保存游戏效果图片,并显示出来