Unity检查对象是否被点击打印所有

时间:2019-01-26 19:33:35

标签: c# unity3d

我正在尝试在您单击对象时消失。这个对象经常被实例化,问题是,如果我单击一个对象,它会摧毁所有物体。我的代码:

void Update()
{
    rb.velocity = new Vector3 (speed, 0, 0);
    if (Input.GetMouseButtonDown(0))
    {
        onItemClicked();
    }

}

void onItemClicked()
{
    //Check if click
    RaycastHit hit;
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, out hit, 100.0f))
    {
        //Si ha dado a algo
        if (hit.transform != null)
        {
            print(hit.transform.gameObject);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我测试了代码并正常工作,我的意思是,请记住,当实例化一个对象时,它们将具有(除非您对其进行设置)相同的名称,因此,如显示gif所示,您将获得多个具有相同打印效果的打印件名称,但它们实际上是不同的对象。因此,如果您尝试:

...
if (hit.transform != null)
{
   print(hit.transform.gameObject);
   hit.transform.gameObject.SetActive(false);
}
...

您将看到只有一个对象将关闭