2012年9月18日火曜日

Unity3D SQLiteを使用できるアセット

UnityでSQLiteを使用する方法に関する記事を最近読み、大変興味深い内容だと感じた。

テラシュールウェア:[Unity3D]UnityでSQLiteを使用する
http://terasur.blog.fc2.com/blog-entry-265.html

見たかぎり手順はなかなか一筋縄でいくものでないけど、アセットでこれは何とかならないだろうか?とおもって検証することにしてみた。

まずはAsset Storeでの「SQL」という文言での検索結果:

これらアセットのうち「Mono SQLite」だけがPlaymaker連携もうたっており、公式フォーラムでのサポートの回答を行っていたため、購入して内容の確認を行った。(このあたり全部買うわけにいかず、客観的な理由でなく趣味嗜好)

なおYoutubeチャンネルでの宣伝ビデオはなかなか興味深いもので簡単なゲームのプロトタイプを作りながら、MonoSQLiteとPlaymaker連携をする勉強になる、なかなか優れたビデオ。


そして、自身での検証結果ですが・・・

結論からいうと、「簡単・手軽にモバイルデバイスへ出力する」とは言いづらい結果でした。まあモバイル環境でDBアクセスするのだから簡単には行かないだろうとはおもいつつも、きちんとお金を払うことを考えると慎重な検討のうえで購入を決めたほうが良い一品、という感想。

作成した方はブラジルの方なので、公式サイトも英語以外にところどころポルトガル語らしき言葉があって、おおらかな国の人が作ったものという感じ。
(公式フォーラムでも7/20頃からNGUIとの連携機能リリースもうたっていて「来週木曜日出す」まで8月半ばに書いてあったけど、9月入ってもなかなか出てこないw)

自分の検証内容が雑なところもあるのかもしれないので、もう少しまた時間おいて検証してまだ同じ感想かどうかは客観的にみるようにしよかな。。。

-----
  • エディタ上は問題なく動作
  • iOSビルド
    • 環境はUnity3.5.2f2  iOS Free版でテスト
    • マニュアル通りに進めると、XCodeビルド時にエラーが発生する※
    • データベースのデバイスへの移行は手動処理が必要※
    • SELECT, UPDATE, DELETEは正常処理
  • Androidビルド
    • 環境は Unity3.5.5f3  Android Free版でテスト
    • データベース のデバイスへの移行はうまくいかなかったため検証できず(後日またやってみます)
    • SELECT, UPDATE, DELETEは正常処理
  • 暗号化は今回テストせず
  • その他、検証時に経験した不具合として:
    • "Prepare for iOS"、"Prepare for non-iOS"を複数回行うとなぜかビルド時に「MonoSQLite名前空間が見つからない」エラーが出るようになり、Unityを終了して再度Unityを起動で直った
    • 不具合ではないが、DBをStreaming Assetsフォルダ以外に誤って作成した場合も、DBへの初回アクセス時にDBをStreaming Assets配下に0KBで自動作成してしまうため、値が空である理由に気づきにくい事態に陥った
※ フォーラムみて知ったが、UnityのiOSビルド時にSymLinkを選択するほか、XCodeでの手動処理があった
2) Did you added the dbs and the sqlite library to your XCode Project? Use add files, in your XCode project and add the database files in the StreamingAssets folder to the project. Then, go to Build Phases, look for Link Binary Libraries, click the + Button, look for sqlite and add the 3.0 library.

0 件のコメント:

コメントを投稿

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿

ブログ アーカイブ