Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

Unity データの保存&読み込み  PlayerPrefs

今回は、Unityの「データを保存&読み込む方法」を書きます。


データを保存する方法を何通りもありますが、今回は「PlayerPrefs」を書きます。
簡単にセーブ&ロードができます。


データを保存するには、このようにやります。
Javascript

var test : int = 2;//保存する値

PlayerPrefs.SetInt('save', test);
//SetInt(キー(ファイル名?), データ)

データを読み込むには、このようにやります。
Javascript

if (PlayerPrefs.HasKey('save')) { //データがあるか?
    Debug.Log( PlayerPrefs.GetInt('save') );
 }

実行結果
f:id:gupuru:20140508231526p:plain


保存方法のコードを少し詳しく書いていきます。

「SetInt('save', test)」の引数ですが、第1引数(「save」の部分)は、キーです。
キーは、ファイル名みたいな感じと思うとわかりやすいと思います。

で、第2引数(「test」の部分)は、保存するデータです。
ここで、注意が必要なのが、型を指定して保存する所です。
上のコードでは、「SetInt」となっています。この場合は「int型」しかを保存できません。ここにString型などをいれるとエラーになります。

String型を保存するには、「SetString」、float型を保存するには、「SetFloat」とします。
コードで書くとこんな感じです↓
Javascript

var int_test : int = 2;
var float_test : float = 2.7;
var string_test : String = 'hello';

PlayerPrefs.SetInt('int_save', int_test);
PlayerPrefs.SetFloat('float_save', float_test);
PlayerPrefs.SetString('string_save', string_test);


次は、データを読み込むコードです。

こちら↓の部分は、データが存在しているかのチェックをしています。

if (PlayerPrefs.HasKey('save')) 

「HasKey('save')」の引数は、キーです。保存したときに指定したキーを引数にいれます。
別に、この部分は、なくても大丈夫です(笑)ただ、これをしといたほうが、エラーは起きにくいです。

こちら↓の部分で実際に保存したデータを取得しています。

PlayerPrefs.GetInt('save') 

「GetInt('save') 」の引数は、キーです。保存したときに指定したキーを引数にいれます。

で、読み込む場合に注意が必要なのが、型です。
「GetInt」となっているように、上のコードは、int型を読み込みます。
String型を読み込むには、「GetString」、float型を読み込みには、「GetFloat」とします。
コードで書くとこんな感じです↓
Javascript

	 if (PlayerPrefs.HasKey('int_save')) {
          Debug.Log( PlayerPrefs.GetInt('int_save') );
    }

     if (PlayerPrefs.HasKey('float_save')) {
          Debug.Log( PlayerPrefs.GetFloat('float_save') );
    }

     if (PlayerPrefs.HasKey('string_save')) {
          Debug.Log( PlayerPrefs.GetString('string_save') );
    }

実行結果
f:id:gupuru:20140508231923p:plain



ということで、保存と読み込む方法はこんな感じです。
これで、終わります。


参考サイト
Unity勉強 第9回 「永続データストレージを試してみる(ローカル編)」 - BEFOOL blog
Unity - Unity Manual