[Unity]UnityのPlayerPrefsを1.1倍ぐらい便利に使えるアイデアですデータベースを持つまでもない単体のデータを取り扱う時、UnityならPlayerPrefsというクラスを使うのが定番なのかなと思います。どこのページを見てもPlayerPrefsの基本的な使い方しか説明されていないため、それをそのまま使っている方は結構煩わしい思いをしているのではないかな?と感じました。そこで、今回はこのUnityのPlayerPrefsをほんの少しだけ便利にする使い方を紹介したいと思います。非プログラマーの方やアマチュアプログラマーの方は、ぜひこの記事を見て自分の技術の幅を広げていって欲しいなあと思います!(という上から目線ですみません、笑)UserDataクラスでPlayerPrefsをラップするまあ百聞は一見にしかずと言いますので、サンプルソースを提示します。value);}}}UserDataというラッパークラスを用意してその中でPlayerPrefsの処理を行っています。それだけです(笑)これの何が便利なの???処理を呼び出す時の面倒臭さが激減します!まず第一に、値の取得・保存の際に一々キー値やデフォルト値を指定していたのでは面倒臭いですよね?上のソースのように「KEY_DATABASE_VERSION」などときちんと定義してあったとしても面倒臭いですし、仮に「”DATABASE_VERSION”」のように直接打ち込んでいる(ハードコーディング)なら面倒臭い上にメンテナンス性は最悪です。UserDataクラスを一枚被せることでPlayerPrefsの処理を簡単に呼び出せるようにして、さらにソースコードのメンテナンス性も高めているんです。プログラムのバグが激減します!そして第二に、PlayerPrefsのようなクリティカルなバグにつながりやすいクラスはあちこちで呼び出されるべきではないと私は考えます。「ゲームのプレイ中にユーザーデータが消えてしまった」というバグはユーザーからすればとても理不尽で、それはすぐにクレームになって我々開発者の身に降りかかって来ますよね?こういったデリケートな処理はあちこちで呼び出されるべきではなく、なるべく呼び出し元を一箇所にまとめるべきなんです。すれば開発者の意図しないタイミングでそういった処理が呼び出されることも減り、万が一そういったバグが発生してもデバッグや修正がしやすくなります。言えば、上のUserDataクラスではPlayerPrefsクラスのデータ削除用メソッド(DeleteAllやDeleteKey)を実装していません。これらを実装しない限りは、UserDataクラスを通してデータを取り扱う場合にデータは削除されないということを保証できるんです。いったソースコードを書かなければならない場合とは?ちなみに今回紹介したような書き方は、数百行程度の小さなプログラムを組む時には逆に面倒臭く感じるかもしれません。いう時にこういったソースコードを書くべきなのか、答えは2つです。1万行以上のプログラムになる時チームでプログラミングをする時この2つの共通点は、どちらも絶対にバグが出るという点です。要は「絶対にバグが出る」ような状況でプログラミングをする時は、こういった安全かつメンテナンス性の高いソースコードを書く必要があるということですね。参考にしていただければと思います!※PlayerPrefsの各メソッドとその使い方については公式のリファレンスを参照してください。【SQLiteUnityKitの問題修正と拡張】コメントを残す返信をキャンセルする。最近買った書籍アプリ・ゲームプランナー完全マニュアル・ゲーム制作のイロハが学べます。・日本語の数ある言い回しを知ることができます。シナリオ書きにはぜひおすすめ。Project」によって管理されています。Reserved.このページの先頭へ。