ざんないプログラマァのアプリ開発日記

ゲームエンジンUnityを使って何か創る

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Unity 3D セーブデータ(5) ファイルパス

各状況下でアプリを実行したときのパスとファイルの関係まとめ。

◆ Mac mini ◆
【Unity Editorで実行】
Finderから:HD/ユーザー名/ライブラリ/Preferences/Unity.会社名.製品名.pllist

【Standaloneで実行】
Finderから:HD/ユーザー名/ライブラリ/Preferences/Unity.会社名.製品名.pllist

【Web Player ローカルから実行】
Finderから:HD/ユーザー/ユーザー名/ライブラリ/Preferences/Unity/WebPlayerPrefs/localhost/XXX.upp

【Web Player サーバーから実行】
Finderから:HD/ユーザー/ユーザー名/ライブラリ/Preferences/Unity/WebPlayerPrefs/www_2eXXX_2eXXX\XXX.upp

◆ Windows XP ◆
【Unity Editorで実行】
レジストリ:HKEY_CURRENT_USER\Software\会社名\製品名

【スタンドアロンで実行】
レジストリ:HKEY_CURRENT_USER\Software\会社名\製品名

【Web Player ローカルから実行】
C:\Documents and setting\ユーザー名\Application Data\Unity\WebPlayerPrefs\localhost\XXX.upp

【Web Player サーバーから実行】
C:\Documents and setting\ユーザー名\Application Data\Unity\WebPlayerPrefs\www_2eXXX_2eXXX\XXX.upp

※ブラウザアプリ
アプリをサーバーから実行した場合フォルダ名はURLに依存し、ファイル名はhtmlで指定しているリンク名?に依存する。
ファイルはブラウザを閉じると作成されるようだ。
スポンサーサイト
  1. 2011/08/10(水) 06:08:44|
  2. セーブデータ
  3. | トラックバック:0
  4. | コメント:4

Unity 3D セーブデータ(4) まとめ

現時点でのまとめ

PlayerPrefs
<メリット>
・扱いが比較的簡単である
・各アプリ(Web/Windows/Mac/iPhone)共通のコードで処理できる

<デメリット>
・データ改変の危険性が高い
・複雑なデータやデータファイルを分けたい場合は向かない
・「かな」「漢字」は文字化けする ※Windows/iPhone


FileStream/BinaryFormatter
<メリット>
・自由なデータ構造
・ファイル分けできる
・「かな」「漢字」を扱える
・「キー」から「値」を取得できる

<デメリット>
・WebPlayer は非対応
・「キー」の数が多くなると容量も増える


BinaryReader/BinaryWriter
<メリット>
・自由なデータ構造
・ファイル分けできる
・「かな」「漢字」を扱える

<デメリット>
・WebPlayer は非対応


今回のまとめは上記を使用した簡単な構造体をセーブするサンプルを作成し、各アプリ(Web/Windows/Mac/iPhone)で確認した。
Web は Windows/Mac それぞれローカルとサーバーに設置して実行確認した。
Web でセーブする場合は PlayerPrefs を使用するしかない。
Web は体験版(宣伝用)としてのみ公開するのであればセーブする必要はなく、製品として提供したい場合はスタンドアローンにすればよい。
  1. 2010/12/21(火) 14:36:51|
  2. セーブデータ
  3. | トラックバック:0
  4. | コメント:0

Unity 3D セーブデータ(3) BinaryReader/BinaryWriter

前回は Stream と BinaryFormatter を使用してシリアライズした。
ファイルを分けたり、値に「かな」「漢字」を扱えた。
しかし、「キー」と「値」の対が記録されるため無駄に容量をとられてしまった。
「キー」の記録は行わないようにシリアライズする方法を考える。

BinaryReader/BinaryWriter を使用してシリアライズ部分を書き換えれば同じように記録できた。
「値」のみを記録することもできるし、「キー」と「値」の対を記録することもできる。
Web/Windows/Mac/iPhoneで動作確認。しかし、WebPlayer では非対応。

とりあえずセーブ周りはここで切り上げ。
  1. 2010/12/20(月) 14:19:37|
  2. セーブデータ
  3. | トラックバック:0
  4. | コメント:0

Unity 3D セーブデータ(2) FileStream/BinaryFormatter

Unity 3D でユーザーデータなどのセーブを行う PlayerPrefs は単純でマルチプラットホームで利用可能である。しかし、複雑なデータや複数のデータに分けたい場合などはあまり有効ではない。

他に方法はないだろうか?と調べたところ、Stream を使用してシリアライズしている記事を見つけた。
値や文字列をバイナリで保存しているので「かな」「漢字」も扱える。

参考資料
シリアライズのサンプルコード
セーブするファイルパス
※残念なことに WebPlayer では非対応

シリアライズ部分のコードを見ると「キー」と「値」の対で記録している。
セーブしたファイルの中身を見てみると「キー」と「値」とがそれぞれ列挙されて記録されているようだ。

例えば下記のように記録
 info.AddValue("Name", "うに太郎");
 info.AddValue("Sex", "♀");
 info.AddValue("Age", 16);
セーブしたファイルを見ると
 ...NameSexAge....うに太郎♀16... ※←はイメージ

「キー」(文字列)と「値」どちらも記録されている・・・

一つの「値」を記録するのに、必ず対となる「キー」が必要ということは無駄に容量が増えてしまうのではないか?
例えば単語帳アプリなどの大量の学習履歴をセーブする場合などはどうするのだろ?
PlayerPrefs よりは汎用性がありそうだけど無駄に容量が増えるのは避けたいところ・・・


各プラットフォームで実行するのはなかなか面倒・・・
Windows ではコンパイル出来ても iOS ではエラーとか・・・
C/C++の学習が中途半端だからJava/C#とか混乱してくる・・・
いつになったらゲーム部分を進められるのだろうか?
  1. 2010/12/17(金) 17:37:39|
  2. セーブデータ
  3. | トラックバック:0
  4. | コメント:0

Unity 3D セーブデータ(1) PlayerPrefs

Unity 3D でユーザーデータなどのセーブを行うには PlayerPrefs を使用すれば簡単に行うことができるようだ。

簡単なサンプルを試したところ、Web/Windows/Mac/iPhone それぞれのアプリで全て共通のコードで使用できた。
非常に簡単ではあるが「キー」と「値」の対を書き込むだけの単純なもの。
現状は、Windows や iPhone では「かな」「漢字」等は文字化けするようので半角英数のみを使用する。

PlayerPrefs 参考資料
PlayerPrefs チュートリアル動画
Unity サンプル Character Customization

動画にもあるよいうに複雑なデータや複数のデータに分けたい場合などはあまり有効的ではないかもしれない。
また、Windows はレジストリに、Web/Mac はファイルに出力されるが、好きに見れてしまうのでデータを改変されやすい。
  1. 2010/12/15(水) 16:50:41|
  2. セーブデータ
  3. | トラックバック:0
  4. | コメント:0

ざんないブログへようこそ!

KOH

Author:KOH
【開発環境】
Win(XP/7)/Mac Mini
Unity Pro + iOS Pro
3ds Max 2011
VS2008

【iOSアプリ】

I-C (3D puzzle) - PETITDIGI2012/09/07
I-C (3Dパズル)

I-C (3D puzzle) Free - PETITDIGI2012/09/07
I-C (3Dパズル)無料

【Androidアプリ】
I-C (3D puzzle) Free - PETITDIGI2012/11/22
I-C (3Dパズル)無料

【サイト】
・Unity 3D Selfish Training
・Unity 3D でオリジナルキャラクターを表示させる
・サイトマップ

書籍

カテゴリ

開発日記 (68)
アプリ第1弾 (37)
iPhone (16)
麻雀 (15)
Unity 3D (82)
何か作ってみよう (10)
セーブデータ (5)
開発関連 (37)
その他 Unity (28)
3ds Max (11)
体験したみた (9)
その他 3ds Max (2)
Titanium (7)
Studio (4)
iPhone (1)
Android (2)
情報 (47)
書籍 (18)
iPhone (19)
PC (2)
テレビ (4)
コンシューマ (3)
その他 情報 (1)
3.11東日本大震災 (0)
未分類 (1)

RSSリンクの表示

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。