私は現在、ユーザがすべての製品を見ることができ、単一の製品を見ることができ、特定の製品をダウンロードできるアプリケーションを開発中です。それは一つの値だけが、onDownloadClick機能、現在値と以前のすべての値が表示されているが返され、ButtonClicked機能で関数はUnity3Dで現在の変数の代わりに変数の前の値を渡しています
IEnumerator ButtonClicked(int num, string name, string url, string color, string size, string price, string description)
{
prodName.text = name.ToString();
prodColor.text = color.ToString();
prodSize.text = size.ToString();
prodPrice.text = price.ToString();
prodDesc.text = description.ToString();
string Url = url;
WWW www = new WWW (Url);
yield return www;
Texture2D texture = www.texture;
Image img = prodImg.GetComponent<Image>();
img.sprite = Sprite.Create (texture, new Rect (0, 0, texture.width, texture.height), Vector2.zero);
string name2 = name.ToString();
Debug.Log (name2.ToString());
downloadButton.onClick.AddListener (() => StartCoroutine (onDownloadClick (name2.ToString())));
}
IEnumerator onDownloadClick(string name) {
using (IDbConnection dbConnection = new SqliteConnection (conn)) {
dbConnection.Open();
using (IDbCommand dbCmd = dbConnection.CreateCommand()) {
string sqlQuery = String.Format ("INSERT INTO PRODUCTS(Name) VALUES(\"{0}\")", name);
dbCmd.CommandText = sqlQuery;
dbCmd.ExecuteScalar();
dbConnection.Close();
}
}
yield return new WaitForSeconds (.1f);
Debug.Log (name.ToString());
}
:
は、これは私のコードです。問題であると想定されるのは?ありがとう!
は、私はあなたの問題が何であるか知らないが、私はあなたをお勧めします[C#の基本データ型](https://www.tutorialspoint.com/csharp/csharp_data_types.htm)を読んで理解してください。 *あなたが 'string'を' string'に変換するのを見たとき、私の目は疲れていましたが、これはまったく必要ありません。あなたはこの小さな** ButtonClicked関数でこれを** ** **回実行しました。これは 'ToString()'関数を使うときに起こります。 'string'型で' ToString() 'を呼び出さないでください。 – Programmer
ButtonClickedはいつ実行されますか? ButtonClickedをその名前のonDownloadClickのリスナーを実行するたびに実行します。私はあなたがボタンをクリックしてから値を変更し、ダウンロード値としてButtonClickedを最後に実行したときの名前を取得すると推測しています。 – Maakep
これを修正するには、addListenerを1回だけ実行し、ダウンロードメソッドでprodName.textを取得する必要があります。 – Maakep