我可以在特定位置销毁Unity中的克隆GameObject吗?

时间:2018-10-21 19:52:52

标签: c# unity3d

我正在尝试在Unity中制作2D我的世界版本,该地形是通过在GameObject预制件的副本中生成来生成地形的。我想知道是否有任何方法可以通过单击鼠标来销毁特定的GameObject?

3 个答案:

答案 0 :(得分:2)

如果您在2D项目中使用EventSystem, 考虑将该脚本附加到您的预制件上。

class Destroyable : MonoBehaviour, IPointerClickHandler {
    public void OnPointerClick(PointerEventData eventData)
    {
        Destroy(gameObject);
    }
}

答案 1 :(得分:1)

是的添加对撞机和以下脚本:

void OnMouseDown(){
Destroy(this.gameObject);
}

这将摧毁您单击的所有对象,只要它具有对撞器

答案 2 :(得分:0)

您可以使用OnMouseDown。在其中,您必须使用Destroy安全删除游戏对象(免费资源),并使用SetActive(false)使对象“不可见”并且不能被玩家使用,因为Destroy()不能保证立即生效。

void OnMouseDown(){
this.gameObject.SetActive(false);
Destroy(this.gameObject);
}

或者,您可以使用raycast,但是核心代码是相同的。两种解决方案都要求对象具有对撞机。

Raycast extension