ども M2です
すっごい久々ですね
とりあえずおじさん目はアレです
ちょっと良くなる→飲み薬減らして点眼薬追加→点眼薬で副作用発生→割と見えてた右目も死ぬ→飲み薬飲みに戻す
ほんのちょっと良くなる→右も左も視界がぐにゃる
はっはっは
・・・はい
一応ね
おじさんもエンジニア ついでにいうと5年くらいのエンジニアなのでね
ブログあるんだし気まぐれに技術的なことでもメモっておこうかなって
そのうち誰かの役に・・・
たたねぇだろうなぁ・・・・・・・・・・
チームで開発してるときに 一時的にPlayerPrefsとかにデータ突っ込んでおくこととかあると思うんだけど
キーがちゃんと管理されてればまぁいいとして 結構皆適当にしちゃうのよね
っで PlayerPrefsってキー指定で読み込み、削除、全削除はあるけど
今なんのキーが登録されてるかって わからないじゃない?
特に開発が長期化すると変な物が登録されっぱだったり放置されっぱだったりすると気持ち悪い(個人の見解
ので エディタ拡張で見れる用にしちゃおうのコーナーです
ちなみに実機は
AndroidだとSharedPreferencesでとってこれる
iOSは・・・ もってないからわからないb
WindowsのStandaloneだとこの方法で取れる
が ゲーム中に取っても来ても・・・ ねぇ
エディタ、及びWindowsではPlayerPrefsの値はレジストリに書き込まれます(ぶっちゃけこれ嫌い
なのでここから必要な情報を引っ張り出してくればいいわけですね
とり方
var keyName = regKeyName + (PlayerSettings.companyName + @"\" + PlayerSettings.productName);
RegistryKey rKey = Registry.CurrentUser.OpenSubKey(keyName);
foreach (var val in rKey.GetValueNames())
{
prefsDatas.Add(val, rKey.GetValue(val));
}
ただしこちら
レジストリのデータ全部とってくるので・・・

なんか知らないキーがあるぅー
まぁ しゃーない
で 適当に書き込んで
PlayerPrefs.SetInt("SetInt", 12345678);
PlayerPrefs.SetFloat("SetFloat", 1234.5678f);
PlayerPrefs.SetString("SetString", "茶色い狐はのろまな犬を飛び越えれずにずっこけた");

角煮!
よっしゃ よっしゃ
って

ん?

あっ これ不動少数か めんどくさ!!
って ことで
GetInt、GetFloat、GetStringそれぞれかけてデフォルト値が返ってこないものを真とするようにします
そのキーが何の型なのかがわかればいいんだがHasKeyだとキーがあるか しかわからないからね
さらにさらに
レジストリから引っ張ってきたキーは _h[hogehoge]とかなってるから
そのあたりからは消しておかないとダメ
めんどくさいので一番最後の_hのある位置とってそこから後を消すようにしましょ
ぶっちゃけアセットストアに良さげなのあるのでそっちのがいい 9$するけどまぁ・・・
https://assetstore.unity.com/packages/tools/utilities/advanced-playerprefs-window-7070
オシマイケル
気が向いたら作ってるゲームの奴とかもちまちま書き出すよ
昔みたいに