unityでスマホアプリ作ってみた!!
— yosinaga (@harukich227) 2020年9月21日
第・・・何回だろう🙇
スマホ内にダウンロードした音声ファイルをバッドに割り当てて効果音的に再生!!
うまくいけばラジオドラマ的になり・・・はしなかったけど
雰囲気掴んで💪
これを作るためにunity 使う?!🤔 pic.twitter.com/GTgv5IIMNb
こんな感じのアプリを作成し、現在Google Playの審査中!!
この際に実装したスマホの中のファイルを検索できるファイルダイアログの実装方法について解説する
今回使用したAsset 無料
とりあえずこちらをプロジェクトにインポート
実装の流れとしては
・ファイルのフィルタはダイアログを開く前に指定
・ダイアログを閉じるときに正しくファイルが選択されていたら、ファイルのパスを取得する
こんな感じ
便利な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() {
}
今回のところはここまで