Unity研究所<Unityによるゲーム開発、映像開発>

Unity初心者40代後半中年中間管理職おやじが綴るゲームで小遣い稼ぎできるようになるまでのブログ

Unity 小ネタ スマホアプリでスマホ内のファイルを開くダイアログを実装

 

 こんな感じのアプリを作成し、現在Google Playの審査中!!

 

この際に実装したスマホの中のファイルを検索できるファイルダイアログの実装方法について解説する

 

今回使用したAsset 無料

とりあえずこちらをプロジェクトにインポート

assetstore.unity.com

 

実装の流れとしては

・インポートしたスクリプトスクリプトから呼び出して使用

・ファイルのフィルタはダイアログを開く前に指定

・ダイアログを閉じるときに正しくファイルが選択されていたら、ファイルのパスを取得する

 

こんな感じ

便利なAssetを無料で公開してくださっている方に猛烈感謝!!

 

では、具体的な実装例を・・・といってもAssetのサンプルコードを少しだけアレンジしただけ(-_-メ)

 

まずは、インポートしたスクリプトを使うよ~っという宣言

using System.IO; //これも必要だった
using SimpleFileBrowser;

 

インポートすると、FileBrowserというオブジェクト?が使えるようになる

 

 

次に開くファイルのフィルタを指定

今回はPadに登録音声ファイルを登録し、Padをタップすると効果音がなるというアプリなので、音声ファイルのみが表示されるように指定

void Start()
{
   FileBrowser.SetFilters(true, new FileBrowser.Filter("Sound Files", ".wav", ".mp3"));
   FileBrowser.SetDefaultFilter(".wav");
}

 

 

さらに、ファイルダイアログを呼び出す関数をつくり、その中でダイアログを表示する関数を呼び出し

void OpenFileDialog()
{

 FileBrowser.ShowLoadDialog(onSuccess, onCancel, false, false, null, "Load", "Select");

}

 引数

 1つ目 ダイアログを閉じるときにOkボタン的なものを押した場合に呼ばれる関数

 2つ目 キャンセルまたはファイルが選択されなかった場合に呼ばれる関数

 3つ目 フォルダ選択モードにするかどうか

 4つ目 複数ファイル選択可能にするか

 5つ目 開いた時のデフォルトのパスの指定

 6つ目 ダイアログのタイトル

 7つ目 OKボタンに表示するテキスト 今回はSelectにしている

 

 

次にファイルの選択に成功した場合に呼ばれる関数

void onSuccess(string[] paths) {           

  StartCoroutine(LoadToAudioClipAndPlay(paths[0], CurrentPadNum));
 }

 

成功した場合は、ファイルのパスの配列の中にファイルパスのテキストが入ってくるので、これをもとにファイルを開く関数を実行

 

今回はこの先のファイルを開く処理については解説しないが、ファイルを開くまでに時間がかかる場合があるので、コルーチンにしている

 

なお、失敗の方は処理の必要がないので空
void onCancel() {


}

 

 今回のところはここまで