主なコンテンツ

〜主なコンテンツ〜

1. Unityで製作したゲームと製作Tips
  1. 三月精チャレンジ(東方Project二次創作)
    1. 作り方
  2. 英語学習2D(オリジナルスマホアプリ)
2. UE4
3. ゲームアプリ見学
4. Bitbucket & SourceTreeでの一連の流れ
  1. 前半
  2. 後半
5. Tips
  1. UnityのTips
  5. SQL文のTips
  6. Final IK
  7. GearVR+Unity

2016年4月20日水曜日

SQLiteの読み書き

■読み込み

前回やった内容を少し発展させ、inspectorからではなくSQLiteのデータベースファイルからidを参照する。データベースは暫定的に次のようにした。


この値を取ってくるには次のようにする。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
[ExecuteInEditMode]
public class HeaderText : MonoBehaviour {
[SerializeField] CategoryDB cDB;
private int id;
private int oldID = 0;
void Start(){
//データーベースにアクセス
SqliteDatabase sqlDB = new SqliteDatabase("save.db");
// Select
string selectQuery = "select selectingID from User";
DataTable dataTable = sqlDB.ExecuteQuery(selectQuery);
//検索
foreach(DataRow dr in dataTable.Rows){
id = (int)dr["selectingID"];
}
}
void Update () {
//IDに変更がない場合は処理をしない
if (id == oldID || id == 0) return;
//デバッグ用のブール代数を用意
bool isFound = false;
//検索
foreach (CategoryDB.CategoryData data in cDB.list){
if(data.id == id){
GetComponent<Text>().text = "「" + data.name + "」";
isFound = true;
break;
}
}
//IDの更新
oldID = id;
//検索結果をログに表示
if (isFound) {
Debug.Log ("指定IDの内容に変更しました。(HeaderText.cs)");
} else {
Debug.Log ("指定のIDは見つかりませんでした。内容の変更は行われませんでした。(HeaderText.cs)");
}
}
}
view raw HeaderText.cs hosted with ❤ by GitHub

これによりデータベースに保存されているIDの内容を表示することが可能となった。


■書き込み

メニューのボタンを押したとき、データベースを更新するようにする。ボタンを押すと、下記のSellectメソッドが呼び出されるようにした。データベースの書き換えは2~6行目で行われている。

public void Select(){
//データーベースにアクセス
SqliteDatabase sqlDB = new SqliteDatabase("save.db");
//上書き
string query = "update User set selectingID = " + id.ToString();
sqlDB.ExecuteNonQuery(query);
//ヘッダーの更新
header.ChangeID (id);
//メニューの操作
menue.ClickMuenuButton();
}
view raw Buttom.cs hosted with ❤ by GitHub


■まとめ

ここまでで作った内容は下図である。メニューのボタンの内容はScriptableObjectを参照している。ボタンを押すとデータベースのselectingIDが更新される。ホーム画面上部にある文字はデータベースのselectingIDに応じて内容が変わる。


なお本筋は、NPOIの使い方、ScriptableObjectの使い方、SQLiteの使い方、必要となるエディタ拡張の説明なので、それ以外の部分は説明を割愛した。

0 件のコメント:

コメントを投稿