Unity Android сохранить скриншот в галерее - PullRequest
0 голосов
/ 01 марта 2020

Я использую это

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

public class ShareButton : MonoBehaviour {

public void ClickShare()
{
    StartCoroutine(TakeSSAndShare());
}

private IEnumerator TakeSSAndShare()
{
    string timeStamp = System.DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss");
    yield return new WaitForEndOfFrame();
    Texture2D ss = new Texture2D( Screen.width, Screen.height, TextureFormat.RGB24, false );
    ss.ReadPixels( new Rect( 0, 0, Screen.width, Screen.height ), 0, 0 );
    ss.Apply();

    string filePath = Path.Combine( Application.persistentDataPath, "Tanks" + timeStamp + ".png" );
    File.WriteAllBytes( filePath, ss.EncodeToPNG() );

    Destroy( ss );


}

}

, чтобы сохранить снимок экрана при нажатии кнопки. Как я могу сохранить его в какой-то папке, чтобы его можно было найти в Android галерее?

1 Ответ

0 голосов
/ 01 марта 2020

Вам необходимо получить правильный путь

В вашем текущем решении вы сможете найти скриншот в android/data/com_your_application/files и, возможно, захотите сохранить его в другом месте.

Для сохраните свой скриншот в: /storage/emulated/0/DCIM/

Вы можете использовать Unity AndroidJavaClass и Object , чтобы получить путь:

    private string GetAndroidExternalStoragePath()
    {
        if (Application.platform != RuntimePlatform.Android)
            return Application.persistentDataPath;

        var jc = new AndroidJavaClass("android.os.Environment");
        var path = jc.CallStatic<AndroidJavaObject>("getExternalStoragePublicDirectory", 
            jc.GetStatic<string>("DIRECTORY_DCIM"))
            .Call<string>("getAbsolutePath");
        return path;
    }

Это даст Вы указали путь к папке c DCIM publi в Android, и затем вы можете передать этот путь в File.WriteAllBytes вызов

Не забудьте установить разрешение на запись в Внешний (SDcard) в Настройки проигрывателя для Android.

Если вы не хотите, чтобы ваши скриншоты появлялись в root папки DCIM, вы можете просто добавить каталог к ​​пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...