Unity 3D Game Engine – Get Screenshot – Android
How to get a in-game Screenshot with Unity 3D – UNTESTED
IMPORTANT!!!
Unity> MAIN TOP MENU> File> Build Settings> Player Settings…> Other Settings> Configuration> Write Access> External (SD Card), this setup will create inside Android Device using Windows 7 -> Phone/Android/data/com.Company.LuceDigitale
It this equal the write inside AndroidManifest.xml ->
Method 1
Application.CaptureScreenshot
NOTICE: CaptureScreenshot is asynchronous. This is because capturing and saving the screen can take awhile.
Inside Hierarchy create a structure with:
1. Some Objects
2. Main Camera, attach the script ‘GetScreenShot.js’
GetScreenShot.js
#pragma strict
// For Android Devices ONLY
// Attach this script to Main Camera
// File> Build Settings> Player Settings...> Other Settings> Configuration> Write Access> External (SD Card),
// this setup will create inside Android Device using Windows 7 -> Phone/Android/data/com.Company.LuceDigitale
// It this equal the write inside AndroidManifest.xml -> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
var scoreTextX : GUIText;
var localize : String;
function Start() {
}
function OnGUI()
{
if (GUI.Button(Rect(10,10,200,50),"Capture Screenshot"))
{
// debug data path
localize = Application.persistentDataPath;
scoreTextX.text = localize;
// it writes: /storage/sdcard0/Android/data/<bundle id>/files folder
// We should only read the screen buffer after rendering is complete
yield WaitForEndOfFrame();
// Application.dataPath DOES NOT have write permission on Android, you need Application.persistentDataPath
// static function CaptureScreenshot(filename: string, superSize: int = 0): void;
Application.CaptureScreenshot("Screenshot.png");
// the file will be saved on: /storage/sdcard0/Android/data/<bundle id>/files folder
}
}