依照大家的应用习惯,我们有是会忽略一些东西,有时反而不知道哪种做法是捷径,今天我们来看看unity3d 屏幕截图多种写法,希望将有用的东西带给大家:

function OnGUI(){

if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),“screen”)){

Application.CaptureScreenshot(“Screenshot.png”);



【c#】

using UnityEngine;

using System.Collections;

public class example : MonoBehaviour

{

void OnMouseDown()

{

Application.CaptureScreenshot(“Screenshot.png”);

}

}

function OnGUI(){

if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),“screen”)){

Application.CaptureScreenshot(“Screenshot.png”);



这张Screenshot.png图片被存在了当前工程的子目录下了。



另外的方法

function ScreenshotEncode()

{

// wait for graphics to render

yield WaitForEndOfFrame();

// create a texture to pass to encoding

var texture:Texture2D = new Texture2D (Screen.width, Screen.height, TextureFormat.RGB24, false);

// put buffer into texture

texture.ReadPixels(Rect(0.0, 0.0, Screen.width, Screen.height), 0.0, 0.0);

texture.Apply();

// split the process up–ReadPixels() and the GetPixels() call inside of the encoder are both pretty heavy

yield;

// create our encoder for this texture

var encoder:JPGEncoder = new JPGEncoder(texture, 75.0);

// encoder is threaded; wait for it to finish

while(!encoder.isDone)

yield;

// save our test image (could also upload to WWW)

File.WriteAllBytes(Application.dataPath + “/../testscreen-” + count + “.jpg”, encoder.GetBytes());

count++;

}