強火で進め このページをアンテナに追加 RSSフィード

整理された情報は こちら へどうぞ。

2011年07月12日

[][]ゲームのスコア情報などを簡単に保存出来るPlayerPrefsクラス

f:id:nakamura001:20110712003527p:image

こんな感じにPlayerPrefsを使うと簡単にスコア情報を保存出来ます。

var Score : int = 0;

function Awake () {
	Score = PlayerPrefs.GetInt("Score");
}

function OnGUI () {
	if (GUI.Button(Rect(5, 5, 200, 50), "+1")) {
		Score++;
		PlayerPrefs.SetInt("Score", Score);
	}
	if (GUI.Button(Rect(5, 60, 200, 50), "Data Clear")) {
		Score = 0;
		PlayerPrefs.DeleteKey("Score");
	}
	GUI.Label(Rect(5, Screen.height-20, Screen.width-10, 50), "Scroe:"+Score);
}

その他に SetFloat や SetString など float や String データを保存可能です。

環境によってファイルの保存場所が異なり、以下の様になります。

Macスタンドアローン(.app)の場合

  • .plistファイルに保存
~/Library/Preferences/unity.[company name].[product name].plist

Windowsスタンドアローン(.exe)の場合

HKCU\Software\[company name]\[product name]

Web Player(Mac)の場合

  • 独自形式?のファイル
~/Library/Preferences/Unity/WebPlayerPrefs

Web Player(Win)の場合

  • 独自形式?のファイル
%APPDATA%\Unity\WebPlayerPrefs

Web Playerの場合はファイルサイズに1MBまでの制限有り。

Macスタンドアローンの.plistはこんな感じに出力されます。

f:id:nakamura001:20110712003528p:image

ファイルが更新されるのはアプリが終了したタイミングみたいです。それまではオンメモリで処理されるのかな?

関連情報

Unity Script Reference – PlayerPrefs

http://unity3d.com/support/documentation/ScriptReference/PlayerPrefs.html

TAKE3TAKE3 2012/08/28 08:40 いつも楽しく読ませていただいています。
質問なのですがマリオのコインのようにフィールド上で取得するためには上の内容を
どのようにすればいいでしょうか?

nakamura001nakamura001 2012/08/28 14:36 質問の内容がイマイチ把握出来ないかもですが質問は「コインを取得したらスコアを加算したい」という事でしょうか?
そうであればコインとプレーヤーとが接触したタイミングで特定のスコアを加算すれば実現できます。

TAKE3TAKE3 2012/08/29 12:15 ご返答ありがとうございます。
私は基本デザイナーでUNITYを学び始めたところで説明が不十分で申し訳ありません。
コインとプレイヤーが接触したという判定をどのように取得するのかがわからないのでもしよろしければ教えていただけますでしょうか。

nakamura001nakamura001 2012/08/30 00:47 なるほど、そちらで有ればコリジョンというものを接触判定をしたいオブジェクトに設定すると取得出来る様になります。

詳しくはこちらのサイトなどが参考になるかと思います。
http://code.google.com/p/vga-unity/wiki/GP10UnityCourse07

TAKE3TAKE3 2012/09/01 22:13 ありがとうございました。
すぐには理解できずにやっと先ほど消す事だけできるようになりました。
これからスコア表示できるように頑張ります

nakamura001nakamura001 2012/09/02 17:03 良かったです。頑張って下さい。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

リンク元