Necesito establecer la ruta para guardar las imágenes con una aplicación para Android e IOS con UNITY
Mi código actual:
function Update() { if(Input.GetMouseButtonDown(0)) { Debug.Log("foto"); Application.CaptureScreenshot(Application.dataPath + "Screenshot.png"); } }
Necesito el camino para la salida de cada foto para esta función.
- Google Analytics Unity plugin - No se muestran datos
- Escribir plugins Unity3D multiplataforma con Xamarin
- La aplicación que implementa Parse Unity Plugin se bloquea en el dispositivo android pero funciona bien en el editor
- ¿Cómo implementar multitouch en Unity3d en un dispositivo móvil?
- ¿Cómo iniciar la aplicación Unity desde la actividad de Android?
¡Gracias!
- Callback Listener en Unity - Cómo llamar al método de archivo de script desde UnityPlayerActivity en Android
- ¿Cómo iniciar una actividad de Android desde una aplicación de Unity?
- Descargue, copie y vuelva a cargar el archivo APK en Google Play. ¿Es posible?
- Comprobación de si un punto táctil está dentro de la caja colisionada en Unity
- La rotación de webcamTexture difiere en unit3d bajo Android
- Intercambiar píxeles de MainTex con otras texturas a través de la superficie Shader (Unity)
- Soporta múltiples proporciones en Unity
- Android InApp Billing: El elemento que solicitó no está disponible para su compra. Inconsistente en una cuenta de Google diferente
Puede guardar archivos en Application.persistentDataPath . Las aplicaciones de Unity no tienen permisos de escritura para Application.dataPath
en dispositivos Android o iOS.
Además, no olvide unir la ruta y el nombre de la carpeta con una barra inclinada:
Application.CaptureScreenshot(Application.persistentDataPath + "/Screenshot.png");
Hay al menos 3 maneras de guardar algún tipo de captura de pantalla con Unity3D: Application.CaptureScreenshot
, Texture2D.ReadPixels
y RenderTexture
.
Sólo sé sobre el primero: Application.CaptureScreenshot
. Es seguro el más simple. No toma rutas y se guardará en Application.persistentDataPath
o Application.dataPath + "/../"
, dependiendo de su plataforma. Desafortunadamente no hay ninguna manera de saber con seguridad o con código solamente – es apenas roto de esa manera. Además, es lento y puede tardar algunos segundos en procesarse. Se ejecuta como un proceso separado por lo que debe tener una actualización o una Coroutine esperando que el archivo se cree antes de usarlo para cualquier cosa.
Si desea elegir dónde se guardará el archivo con él, debe hacer algo como esto:
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; } } }
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); } } }
Application.persistentDataPath
de la unidad siempre apunta hacia la carpeta de documentos en IOS
y /mnt/android/data/application-bundle-identifier/
para android
.
Y si no le das la ruta para Application.CaptureScreenshot
poner en lugar de dar sólo el nombre de la captura de pantalla que se guardará automáticamente en la carpeta Documentos de IOS
no han probado para android
.
Espero que esto ayude.
- ¿Cómo actualizar vista de un widget en el botón de clic en android?
- Usuario no es elegible para esta compra para la compra de la aplicación in Android