如何使这行代码:
void OnCollisionEnter(Collision collision) {
Destroy(gameObject);
}
适用于每个实例化对象?
因为只有部分而非所有实例化对象都会自行毁坏。
[PS:]我希望如何:
当子弹与另一个实体发生碰撞时,子弹被击中它会摧毁自己,而不是全部,我将PS
添加为更具体。
答案 0 :(得分:1)
如果我已正确理解你的问题,你想让你的子弹自己摧毁和他们击中的对象。如果是这样,它将是这样的:
void OnCollisionEnter(Collision collision) {
// destroy the GameObject with which the bullet collided, before destroying the bullet
Destroy(collision.gameObject);
Destroy(gameObject);
}
答案 1 :(得分:0)
你的问题听起来很模糊,但我会尽力回答这个问题。 您可以使用" OnCollisionEnter"制作单独的脚本来销毁。并将它附在您的子弹预制件上。 可以说,你创建了一个名为" Destroy"并在类
中添加了以下代码行void OnCollisionEnter(Collision collision) {
Destroy(gameObject);
}
然后将此脚本附加到名为bullet的预制件上。现在每当你实例化一个子弹时,这个脚本就会附加到那个子弹上,一旦它击中另一个游戏对象,它就会自行消灭。如果你需要使用该子弹销毁任何特定对象,那么你可以使用标签来做到这一点,就像这样
void OnCollisionEnter(Collision collision) {
if(collision.gameobject.tag=="enemy")
Destroy(collision.gameobject); //to destroy enemy
Destroy(gameobject); //to destroy bullet
}
如果你想要销毁所有实例化的游戏对象,那么你应该将这些游戏对象存储在数组中并运行一个循环到" OnCollisionEnter"把它们全部摧毁。