白黒羊

UnityNativeGalleryを使ってアプリから画像を保存する

Unity Native Gallery

yasirkula_UnityNativeGallery_ A native Unity plugin to interact with Gallery_Photos on Android & iOS (save and_or load images_videos)

インストール

Unity Package Manager に https://github.com/yasirkula/UnityNativeGallery.git を入力してインストールします。
それ以外にもunitypackageなども配布されているので、公式を参考に好きな方法でインストールしてください。

Project Settings

iOS

インストール直後から、Project Settings に自動的に表示されるテキストが設定されているので何もしなくても使えます。

しかしこのままだと日本語ユーザーにも英語で表示されてしまい、あまり親切ではありません。
ローカライズまで対応するには、 Automated Setup のチェックを外してXCodeの設定をするのか……? と思ったのですが、

Manual Setup for iOS · yasirkula_UnityNativeGallery Wiki

以下を導入していればCSVに NSPhotoLibraryUsageDescriptionNSPhotoLibraryAddUsageDescription の各ローカライズ後のデータを入力するだけで大丈夫でした。

Android

Player SettingsWrite Permission を External (SDCard) にしておきます。

使い方

画像を保存する使い方はとても簡単で、

NativeGallery.SaveImageToGallery(texture2d, albumName, fileName);
NativeGallery.SaveImageToGallery(Resources.Load<Texture2D>(path), albumName, fileName);
ver permission = NativeGallery.SaveImageToGallery(path, albumName, fileName);
NativeGallery.SaveImageToGallery(bytes, albumName, fileName);

これだけです。Texture2Dだけじゃなくて byte配列や 画像の置いてあるパスの指定とかでも保存できます。返り値はpermissionの状態です。