ゲームを作っていると
- 複数のシーンから共通のデータを参照/更新したい
- 再起動してもデータが消えないよう永続化したい
という欲望にぶち当たる。
調べてみると、1はScriptableObjectで、2はPlayerPrefsというやつで実現するそうだ。
複数のシーンから共通のデータを参照/更新したい(ScriptableObject)
ScriptableObjectはゲームの起動から終了までの間で利用できる共通データオブジェクトらしい
Webアプリとかのセッションオブジェクトみたいな感じ?という認識です
使うためには、.assetファイルを作る必要があるのだが、
ScriptableObjectを継承したクラスからassetを作るスクリプトが公開されている。
ScriptableObjectを使う準備
- CreateScriptableObjectPrefub.csのインストールする
- ScriptableObjectを継承したクラスを作成する
- ScriptableObjectを継承したクラスを作り、共用したい変数をフィールドとして定義。
- 作ったクラスは、Assets/Resources配下に配置する
- スコアとレベルを保存したい場合のクラス(PlayData)は下記な感じ。
#pragma strict public class PlayData extends ScriptableObject { static var score : float = 0.0; static var level : String = ""; }
- 作ったクラスをCreateScriptableObjectPrefubでasset化する
- 2で作ったPlayData.jsを右クリック
- すると一番下らへんに「Create ScriptableObject」というメニューがあるので、クリック
- 「PlayData.asset」が「PlayData.js」と同じ場所に作成される。
- これで、ScriptableObjectを使う準備はOK
- ※2.作ったクラスにエラーがあると、エラーを吐いて、assetが作成されません
ScriptableObjectの使い方
- 使い方の例は下記の通り。というか、普通か。
# ScriptableObjectの取得 var data : PlayData = Resources.Load( "PlayData" ) as PlayData; # フィールドの参照 var score : float = data.score; var level : String = data.level; # フィールドの更新 data.score = 10.0; data.level = "Level1";
再起動してもデータが消えないよう永続化したい(PlayerPrefs)
PlayerPrefsはセーブデータみたいに、ゲームを終了しても保存されるデータを扱うためのUnityの機能らしい。
他にもXMLやJSONファイルを自前で読み書きしたりする方法もあるらしいが、お手軽なのがいいところ。
使ってみると、単なるキーバリューストアっぽい感じ
ScriptableObjectみたいに準備は特に不要。
PlayerPrefsの使い方
いつくかの例は下記な感じ。
KeyはStringのみ、ValueはInt, Float, Stringの3種類に対応している
key : String = "key"; # keyに対するデータの参照 var value : float = PlayerPrefs.GetFloat(key); # keyに対するデータの追加/更新 PlayerPrefs.SetFloat(key, value); # keyが存在するかの確認。Booleanが返ってきます。 PlayerPrefs.HasKey(key); # keyをすべて削除 PlayerPrefs.DeleteAll(); # 該当のkeyを削除 PlayerPrefs.DeleteKey(key);
- 全貌はAPIリファレンスを参照してください。
[PR] こんなアプリを作ってます
マグロ探し
大量の鯖(サバ)の中から1匹の鮪(マグロ)を探す、シンプルなタッチゲーム☆彡
反射神経、周辺視野、正確なタッチが求められるカジュアルゲームです♪
マグロ探し - Google Play の Android アプリ
ボコボコリンリン♪
キャラクタを殴ってつぶしたり、釘でぶすぶす刺したりできるストレス発散ゲーム♪
いろんなキャラをボコボコにして、日頃の恨みを解消!!
ボコボコリンリン♪ - Google Play の Android アプリ
四色漢字
赤・青・黄・緑の4色のボタンを、文字の色または漢字の読みの通りに押していく脳トレゲーム!
ストループテストという前頭葉の注意機能の検査をゲームらしくしてみました♪
四色漢字 - Google Play の Android アプリ
参考にしている書籍
ネットだけでも情報がたくさんあるけど、体系的に理解するにはやっぱり書籍だな~と
いつもかたわらに置いてある書籍たち
ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで
- 作者: あすなこうじ
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/06/30
- メディア: 大型本
- この商品を含むブログ (4件) を見る
Unityによる2Dゲーム開発入門 ~プログラミング初心者がゲームを公開する最短コース
- 作者: 中島安彦
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/09
- メディア: 大型本
- この商品を含むブログ (4件) を見る
Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦
- 作者: 大野功二
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/10/29
- メディア: 大型本
- この商品を含むブログ (1件) を見る