暑い( ´・ω・`;)
取り敢えず残りの実装すべきアプリ関連の機能の設定用トグルなどを追加した。普通の人には大したことではないが、"設定画面を作成したりしてると死にたくなる病"の俺氏にとっては命に関わる難作業であった( ・´ω・`)アブナイトコロダッタ
後はその機能の実装だけなので気は楽だヽ( ・∀・)ノ
とかいいつつ地獄を見るのがいつものパティーン(´・ω・`)
ハイスコア表示
ハイスコア表示はまあ、取り敢えずこんなんでいいや的代物に(・∀・)
配色がなぁ……まあいいか。
こないだはDateTimeOffset型を使わないと駄目かなと思っていたが、よくよく読んでみると必要がないことがわかったw あれはUTCが必要な時に使うべきものか(ノ∀`)
カードの自動戻し
二枚カードをめくってマッチ時にのみ停止して画面タップされるまで表示し続けるか自動消滅するかの設定を用意していたのだけれども、NG時も停止出来るようにした。これはまあ、カード内容を覚えたい人向け……というか自分でやっていてもNG時にカード内容を読みたいなぁと思ったから、急遽追加した(ノ∀`)
ユーザー指定画像ファイルの使用
これは前々から実装を考えていたもので、以前に作っていたものの完成させられなかったAndroid用音楽プレーヤー(余裕が出来たら完成させたいが)でやろうとしていたこと。自分で良いデザインが産み出せないなら、ユーザーに丸投げすればいいじゃない的いい加減さを実現(`・ω・´)ナオジッソウハチョットメンドウダッタ
100x150の固有名を持つファイルをApplication.persistentDataPathのところにぶちこんで、このオプションをONにすると他の設定を無視してそのファイルをカード裏として読み込む。(※尚、この猫画像はGoogle+の猫サークルかなんかで拾ったものだったかしら(´・ω・`)?)
100x150ぴったりだと四角のカードになってしまい、ビジュアル的におかしくなるので実際に使用するには
に画像を貼り付けたモノを用意しないといけない。プログラム的に生成することも出来なくはない気はするが、今はそんなに余力がないのでいずれするとしよう。ついでにファイルパス指定で読み込めるようにもしたいなぁ。
以下のページを参考にしてニコイチにした。と思ったが、正確には前回参考にしたJson読み込みのコードをベースにしているのでサンコイチか(ノ∀`)
ファイルパスから画像を読み込み、Texture2Dを作って、それをSpriteにするだけ。
参考:
【Unity】pngファイルを読み込み同サイズのTexture2Dを生成する
Texture2DからSpriteを作成する
Sprite sprite = GetSpriteFromFolder(Application.persistentDataPath + "/usf01.png"); }
Sprite GetSpriteFromFolder(String filePath) { using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { using (BinaryReader br = new BinaryReader(fs)) { byte[] values = br.ReadBytes((int)br.BaseStream.Length); Texture2D texture = new Texture2D(100, 150); texture.LoadImage(values); return Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero); } } }
ユーザー指定音楽ファイルの使用
ついでに効果音も読み込めるようにした(`・ω・´)
外部からだとmp3は読み込めないのね(´・ω・`)
なんかライセンスの絡みだとかあったけど、mp3のライセンスって去年の5月くらいに消滅してるみたいなんだよね。他の違うライセンスの問題? 或るいはUnityのフリー版だけ駄目とか?
まあ何はともあれ以下のページを参考にしてwavファイルを読み込むようにした。
参考:
[Unity] Unity×音についてざっくりまとめ
Unityで外部音楽ファイルを読み込む
WWW.GetAudioClip
エディター上(Windows上?)では「file:///」じゃないと読み込みが出来ないらしいけど、Androidは「file:///」でも読み込めるので、「file:///」一本槍にしてしまっているが、いいのであろうか(´・ω・`)?
ユーザー指定の効果音ファイルがない場合はデフォルトの効果音を使いたいのでこんな形にした。
AudioClip LoadWavFile(string fileName,AudioClip defaultClip) { if (File.Exists(Application.persistentDataPath + "/" + fileName)) { return GetAudioClip("file:///" + Application.persistentDataPath + "/" + fileName); } return defaultClip; }
AudioClip GetAudioClip(string filePath) { using (WWW www = new WWW(filePath)) { while (!www.isDone) { } return www.GetAudioClip(false, false,AudioType.WAV); } }
効果音系をもうちょい触って、ローカライズファイルを読み込めるようにして……あとは追加表示とゲームのギミックを二つ程追加すれば外殻は完成なんだけども、ギミック部分の実装にどれだけかかるかだなぁ……
それが終わったら、ようやくカードセットの追加にかかれるのだけれども。