在unity3d中消失了Gameobject

时间:2013-12-18 08:59:47

标签: unity3d

我在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);
            }
        }
    }
}

1 个答案:

答案 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。

希望你发现这很有用,

亚历