コガネブログ

平日更新を目標に Unity や C#、Visual Studio などのゲーム開発アレコレを書いていきます

【Unity】iOS の写真や Andoid のギャラリーに画像や動画を保存できる「Unity Native Gallery Plugin」紹介

はじめに

「Unity Native Gallery Plugin」を Unity プロジェクトに導入することで
iOS の写真や Andoid のギャラリーに画像や動画を保存できるようになります

設定

  • Android
    • 「Player Settings」で「Write Permission」を「External (SDCard)」に変更する
  • iOS
    • Xcode で「Photo Library Usage Description」を入力する
    • 「Photo Library Additions Usage Description」が存在する場合はコレも入力する

使用例

private void Update()
{
    if ( Input.GetMouseButtonDown( 0 ) )
    {
        StartCoroutine( TakeSS() );
    }
}
    
private IEnumerator TakeSS()
{
    yield return new WaitForEndOfFrame();

    var w = Screen.width;
    var h = Screen.height;
    var ss = new Texture2D( w, h, TextureFormat.RGB24, false );
    ss.ReadPixels( new Rect( 0, 0, w, h ), 0, 0 );
    ss.Apply();

    NativeGallery.SaveToGallery( ss, "GalleryTest", "My img {0}.png" );
}

使い方

// 画像や動画のバイトデータが存在する場合はこの関数を使用します
NativeGallery.SaveToGallery
( 
    byte[] mediaBytes, 
    string directoryName, 
    string filenameFormatted, 
    bool isImage 
)

// 画像や動画がすでに保存されている場合はこの関数を使用します
NativeGallery.SaveToGallery
( 
    string existingMediaPath, 
    string directoryName, 
    string filenameFormatted, 
    bool isImage 
)

// Texture2D をギャラリー/写真に保存する場合はこの関数を使用します
NativeGallery.SaveToGallery
( 
    Texture2D image, 
    string directoryName, 
    string filenameFormatted 
)

// Android のみ、指定したパスに存在するファイルをギャラリーから削除できます
NativeGallery.DeleteFromGallery
( 
    string path, 
    bool isImage 
)

関連記事