方案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"); |
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; |
} |
by: 发表于:2017-10-11 09:34:55 顶(0) | 踩(0) 回复
??
回复评论