5

私の実際のコード:

function Update() { 
    if(Input.GetMouseButtonDown(0)) {
       Debug.Log("foto");
       Application.CaptureScreenshot(Application.dataPath + "Screenshot.png");
    }
}

この関数には、すべての写真の出力パスが必要です。

ありがとう!

4

4 に答える 4

0
static function CaptureScreen(){
var filename;
var name :String = GuiScript.stringToEdit;
var allowedScreenshots:int=1000;
for(var i = 0; i <= allowedScreenshots; i++)
    {

        if(Application.platform == RuntimePlatform.Android){
            filename = "/mnt/sdcard/Android/data/com.xxxx.Test01/files/" + name + i + ".png";
        } else {            
            filename =  name + i + ".png";
        }
        if(!System.IO.File.Exists(filename))
        {
            Application.CaptureScreenshot(name + i + ".png" );
            print("ScreenDUMP made!");
            print(i);
            print(name);

            return;
        }
        else
        {
            print("filename already exists");
            print(i);
        }
    }
}
于 2012-08-27T12:39:43.270 に答える
0

Unity3D である種のスクリーンショットを保存するには、少なくとも3 つApplication.CaptureScreenshotの方法があります: 、Texture2D.ReadPixelsおよびRenderTexture.

私が知っているのは最初のものだけです: Application.CaptureScreenshot. それは確かに最も単純なものです。パスを使用せず、プラットフォームに応じてApplication.persistentDataPathまたはに保存されます。Application.dataPath + "/../"残念ながら、現在のところ、確実に知る方法はなく、コードだけで知る方法はありません。そのように壊れているだけです。また、速度が遅く、処理に数秒かかる場合があります。別のプロセスとして実行されるため、何かに使用する前に、ファイルが作成されるのを待っている更新またはコルーチンが必要です。

ファイルを一緒に保存する場所を選択したい場合は、次のようにする必要があります。

bool creatingFile = false;
string fileName = "Screenshot.png"
function Update() { 
    if(Input.GetMouseButtonDown(0)) {
        Application.CaptureScreenshot(fileName);
        creatingFile = true;
    }
    if (creatingFile) {
        string origin = System.IO.Path.Combine(Application.persistentDataPath, fileName);
        string destination = "/sdcard/ScreenCapture/" + fileName; // could be anything
        if (System.IO.File.Exists(origin)) {
            System.IO.File.Move(origin, destination);
            creatingFile = false;
        }
    }
}
于 2012-12-12T18:23:08.760 に答える
0

Application.persistentDataPathunity の は常に のドキュメント フォルダを指し、 をIOS指し/mnt/android/data/application-bundle-identifier/ますandroid

putのパスを指定しない場合は、Application.CaptureScreenshot代わりにスクリーンショットの名前のみを指定すると、IOSテストされていないの Documents フォルダーに自動的に保存されandroidます。

お役に立てれば。

于 2012-08-22T04:44:41.213 に答える