所以我有一个精灵,它的名字是"公主"当一个立方体接触我的精灵 我希望公主被摧毁。我添加了一个刚体和一个盒子对撞机,但由于某种原因,立方体只是通过公主精灵。
多维数据集是使用代码生成的,因此它的名称是" Cube"根据层次结构,我写了这段代码
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.name == "Cube")
{
Destroy(this.gameObject);
}
}
我认为Destroy(this.gameObject)会摧毁公主,但他们甚至没有碰撞。
有什么想法吗?
以下是"游戏"看起来像。
答案 0 :(得分:0)
检查您是否选中了"触发器"在箱子里面碰撞。 你应该使用标签,因为如果你产生多个立方体,它们的名称就像" Cube(1)"等等。 你需要使用collider2d
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Cube")
{
Destroy(this.gameObject);
}
}
答案 1 :(得分:0)
销毁(this.gameObject)用于自己的对象,
collision.gameObject.setActive(“ False”)适用于碰撞对象
此代码正在我的游戏上运行。其中“玩家”是我的Sprite标签。并确保已为您的多维数据集选中“是触发器”
void OnTriggerEnter2D(Collider2D other) {
if (other.tag == "Player")
{
Destroy(gameObject);
}
}
或者在您的情况下,您可以在Cube脚本中使用以下代码,然后可能会起作用
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "princess")
{
collision.gameObject.setActive("False")
}
}