我在Unity中制作一个文字游戏,其中我有许多游戏对象。每个GameObject名称都是从A到Z的字母。
当我点击该对象时,该字母出现在屏幕上。当我说出一个单词时,它会将它与字典进行比较,以确定它是否正确。我希望当我从字母中输出正确的单词并单击按钮时,GameObject会包含那些我使单词消失的字母。
以下是代码:
internal void ReadStudent(string filetoread,string tableName, string itemToSelect, string wCol, string wPar, string wValue){
//jsScript = Camera.main.GetComponent<chk1>();
string connection = "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" + filetoread;
Debug.Log(connection);
string sqlQuery = "SELECT word FROM "+ tableName + " WHERE " + wCol + " " + wPar + " '" + wValue + "'";
OdbcConnection con = new OdbcConnection(connection);
OdbcCommand cmd = new OdbcCommand(sqlQuery,con);
DataTable dt = new DataTable("dic");
try{
con.Open();
OdbcDataReader reader = cmd.ExecuteReader();
dt.Load(reader);
reader.Close();
con.Close();
}
catch (Exception ex){
//text = dt.Rows[3][1].ToString();
Debug.Log(ex.ToString());
}
finally{
if (con.State!=ConnectionState.Closed){
con.Close();
}
con.Dispose();
}
if (dt.Rows.Count>0){
text = dt.Rows[0]["word"].ToString();
Debug.Log(text);
Debug.Log (wValue);
Debug.Log ("Correct");
for(int i=0; i<=wValue.Length;i++){
Debug.Log ("Enter");
if(wValue[i]==gameObject.name[i]){
Debug.Log ("Enter");
gameObject.SetActive (false);
}
}
}
}
答案 0 :(得分:0)
如果您想删除游戏对象,可以使用Destroy (gameObject)
,或者我不建议使用DestroyImmediate(gameObject)
。
否则,更有效的方法是停用它,然后在必要时使用gameObject.SetActive(false);
请记住,当我说游戏gameObject
时,我的意思是GameObject变量等于要销毁的游戏对象,例如:
using UnityEngine;
using System.Collections;
//You need to assign it in the Start() or from the editor
public GameObject A;
public class ActiveObjects : MonoBehaviour
{
void Start ()
{
//to deactivate it
A.SetActive(false);
//to activate it
A.SetActive(true);
}
}
如果你要使用gameObject,你最终会删除/停用正在执行你的脚本的gameObject。
希望你发现这很有用,
亚历