2016-12-11 6 views
1

Resourceフォルダを使って3Dモデルを読み込みたい。私はアドレスを格納するSQLデータベースを作成しました。この場合、 "モデル"というフォルダに "deer-3ds"というファイルを保存し、これらの情報をsqlの "modeladdress"というテーブルに保存します。 私のコードを修正するのを助けてください。私はそれが100%間違っていることを知っているが、私はそれを修正する方法を知らない。ありがとうございました。ResourceフォルダとMysqlを使ってUnityに3Dモデルをロード

using UnityEngine; 
using System.Collections; 
using System; 
using System.Data; 
using Mono.Data.Sqlite; 


public class addobject : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 
     //GameObject deer=Instantiate(Resources.Load("deer-3d.bak",typeof(GameObject)))as GameObject; 
//  GameObject instance = Instantiate(Resources.Load("Models/deer-3ds", typeof(GameObject))) as GameObject; 
     string conn = "URI=file:" + Application.dataPath + "/modeladdress.s3db"; //Path to database. 
     IDbConnection dbconn; 
     dbconn = (IDbConnection) new SqliteConnection(conn); 
     dbconn.Open(); //Open connection to the database. 
     IDbCommand dbcmd = dbconn.CreateCommand(); 
     string sqlQuery = "SELECT ordinary,foldername, filename " + "FROM modeladdress"; 
     dbcmd.CommandText = sqlQuery; 
     IDataReader reader = dbcmd.ExecuteReader(); 
     while (reader.Read()) { 
      int ordinary = reader.GetInt32 (0); 
      string foldername = reader.GetString (1); 
      string filename = reader.GetString (2); 
      string path = foldername + "/" + filename; 

      //Debug.Log("value= "+value+" name ="+name+" random ="+ rand); 
      GameObject instance = Instantiate(Resources.Load(path, typeof(GameObject))) as GameObject; 
      instance.SetActive (true); 
     } 

     reader.Close(); 
     reader = null; 
     dbcmd.Dispose(); 
     dbcmd = null; 
     dbconn.Close(); 
     dbconn = null; 


    } 


    // Update is called once per frame 
    void Update() { 
//  GameObject instance = Instantiate(Resources.Load("Models/deer-3ds", typeof(GameObject))) as GameObject; 
//  instance.SetActive (true); 


    } 
} 
+0

問題は何ですか?それが "間違っている"とは何ですか? – bpgeck

答えて

1

まず、MySQLではなく、データベース管理システムでSQLiteを使用しています。第二に、クエリを書いた方法

文字列sqlQuery = "SELECT普通、フォルダ名、ファイル名" + "FROMモデルアドレス";

ordinaryfoldername、およびfilenameごとモデルを返します。使用するモデルを正確に指定するには、WHERE句を使用する必要があります。したがって、実際にクエリを実行する前に、データベースからクエリするモデルを知る方法が必要です。その場合、データベースにクエリを行う理由もありますか?とにかく、データベースが何も解決しないように、一意の識別子を格納する必要があります。

あなたが書いた実際のコードについては、正しいと思われます(つまり、になります)。問題は、テーブルが空であるか、返される値が正しくないか、またはオブジェクトが誤った場所でインスタンス化されているために動作していないと考えていることです。より具体的な回答が必要な場合は、直面している具体的な問題(具体的には「間違っている」など)についてこの回答にコメントする必要があります。

関連する問題