万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Unity Siaqodbのデモの使い方

昨日はExamplesRunner.csについて書いたが、
これはMainクラス的なScriptのサンプルが2つあるようだ。

・「DemoRunner.cs」
・「ExamplesRunner.cs」
※コード整形されてなくてコードが汚いです

これらをそれぞれMain Cameraなどにアタッチして実験すればいいと思います。

・DemoRunner.cs
こちらは直にDBにアクセスするような仕組みになっている。
SiaqodbExamplesクラスというDLLに隠れたクラスを使っている

ライセンスもDemoRunnerクラスへ書く

        SiaqodbConfigurator.SetTrialLicense (@"your trial key");

databaseEXにDBのファイルできる。
SiaqodbExamplesがデータを作ってると思われるがDLL


・ExamplesRunner.cs

DatabaseFactory.csをデータベースに一番近い部分でラッピングされていて、
KicksManager.csやPlayerManager.csなどを用いているサンプル。

こちらのほうが汎用性高いかも?

ちなみにこちらも"DatabaseFactory.cs"の下のコードにライセンス入れる

                SiaqodbConfigurator.SetTrialLicense(@"your trial key");

こちらの実行結果は

5人の(サッカーゲームの?)プレイヤーがログインされている状態で、
ログイン時刻が表示され、
(2013/6/10, 2013/6/11と言った具合に2013/6/13にアクセスした2日前くらいの値が出ているので
どのタイミングで入れられたんだ?)

ランダムでプレイヤーが取り出され、
KicksManagerにそのプレイヤーの名前をキーにスコアをだす。
さらに、全プレイヤーベストスコアも出している模様。

ちなみにファイル自体はAssetsとかではなく、「SiaqodbUnityDemo/database」の中にある
sqoファイルだった。

Windows/Macがデフォルトになっており、iOS/Androidそれぞれのプラットフォームへ切り替えられる

                //if ANDROID:
                //siaoqodbPath=Application.persistentDataPath;
                //if Windows or MAC
                siaoqodbPath = Environment.CurrentDirectory + Path.DirectorySeparatorChar + @"database";

                //if iOS (iPhone /iPad)
                //siaoqodbPath =Application.dataPath;


中身はこうだった。
GameEntities.BallKick. GameEntities.sqo
GameEntities.Player. GameEntities.sqo
indexinfo2.sqo
rawdatainfo.sqo

siaoqodbPathには、特にファイル名の指定はなかったので、
各テーブル(NoSQLなのでドキュメント?)に相当した名前が付けられているかもしれない。
しかし、他のフォルダに指定を変えても普通に実行できた。どこからデータとってるんだ?
「database」を「databaseE」とか適当に変えて存在しないフォルダ名を指定しても勝手に作ってくれた。

データを勝手に作ってた犯人はGameSimulator.cs
GameSimulatorのPlay()のGeneratePlayers()によってPlayerやGenerateScores()によってスコアデータを作成されていた