続き
今回で完成させるぞ!
完成したものがこちらです。
後ろのほうでうんこ実装してるけど気にしないでね。自分用メモ!!!!
プライバシーポリシー
最近GoogleStoreに出す際、内容問わずプライバシーポリシーを記載していないとストアから消されてしまうそうです。
前はリンクを貼りましたが、今回はアプリ内に表示させます。
iボタンと×ボタンはペイント3Dで自分で作ることにします。
白くて見えないと思うけど下にあるので使っていいよ
×
i
アプリを閉じても情報保持(PlayerPrefs)
アプリがいったん終了すると、選んだ県の情報も消えてしまうので保持するようにする。
どうやるんだろう~そんなのやったことないな。
xml?
PlayerPrefsというのを使えばいいらしい
とりあえず勉強のため、ボタンを押した数を保存するものを作ってみた。
ボタンを押したらその回数が保存されるもの。右下の幅広いiがセーブボタンね。
ゲームが終わるとき
PlayerPrefs.Save (); でセーブされるらしい。
アプリが落ちたら呼ばれる関数あるのかな?
ないならセーブボタン作らないといけない?
調べたらゲームが終わるときに呼ばれるものがあった。
Editorで動かせばちゃんと動く。
でもちゃんとAndroidだとApplication-Quitを呼んで閉じないと呼ばれないっぽい。
docs.unity3d.compafu-of-duck.hatenablog.com
実際にApplication-Quitを呼ばずにホーム画面戻ってアプリタスク消去で試してみたけど、セーブされなかった。
つまりセーブボタンもしくはアプリ終了ボタンのどちらかは要るみたい。
終了ボタンなんて誰も押さないだろうからセーブボタン作った。
できた!!!!
消す
セーブされたデータはメニューから消せるって。
Edit>Clear All PlayerPrefs
やったら消えた!!
実装
とりあえずPlaterPrefsの使い方はわかったところでアプリに組み込む。
フラグ
保持したい情報って、フラグ情報なんだけど、どうすればいいのかな
public void onButton()
{
btnChangeFlag = !btnChangeFlag;
image.color= btnChangeFlag ? btnColor1 : btnColor2;
}
}
playerPrefsにはboolを保持する仕組みはなさそう。
かといってboolをintにキャストすることもできないらしい
boolじゃなくてintでフラグの代わりするか
これでよい。
あと試してて気づいたけど、start()が呼ばれるときにsaveしてたものをもとに色を変えないといけないんだね。
ボタンそれぞれに違う変数
intをフラグの代わりにするのはできたけど、保存するPlayerPrefsの変数の名前が一緒だとすべてが0か1になってしまう。
ボタンを押して色が変わるスクリプトは1種類ですべてのボタンにつけている。
ボタンの名前を変数にいれたらできるかな。
PlayerPrefsの変数に変数?をいれることはできるみたい。
こんなかんじ
flg = PlayerPrefs.GetInt("TPRESS"+ this.gameObject.name, 0);
じゃあ自分のオブジェクトボタンの名前を取ってそれを変数に組み込めばいいなって思ったら・・・
ボタンの名前全部一緒だったーーーーー
ボタンの上のimageの名前はコピペしたら(1)(2)・・・って自動でつくから名前変わるけど、子オブジェクトのbuttonは全部button1っていう名前だった。
imageの名前を取ってくる方法もあるのかもしれないけど、ググるのがめんどくさいので47個のボタンの名前をひとつづつ変えることにした(アホ)
趣味で作ってる時ぐらい効率化とか考えたくない!!!
できた!!!!!
ちゃんと保存された!!!Androidでもちゃんと動いた!!!
終わり!
save
ちなみに保存は、都道府県を押したときにするようにしたのでsaveボタン要らないね。
でもあったほう使う人は安心するかな?
いや使う人いないからいいか・・・
一応作った。
ついでにデザイン変えた。
スマホ用アイコンの大きさって難しいな・・・
ボタンのハイライトって、別のボタン押したら消えるんだね。
GooglePlayConsole
登録しました。
めんどくさいけど1時間もあればできる。
翌日リジェクトされた。
一応対象年齢をちょっと変えてもう一度申請したけど、いつ通るかわからないから、もうこの記事公開しちゃう
公開されました。
最後に
今回はPlayerptrfsというものを使いました!圧倒的成長!!!!