1

我正在处理一段代码,我在其中实例化 x 数量的 GameObject(预制件)的克隆。有几辆汽车随机生成以模拟交通,然后每个克隆都附加一些脚本;一个来控制它的人工智能,一个来控制碰撞,我想要第三个来摧毁汽车,当它“越界”,或者离游戏太远以至于我们再也看不到它了。

问题是,我不知道如何访问脚本当前附加到的 GameObject。我设法从 OnCollisionEnter2D 中找到与我碰撞的任何游戏对象,但我还没有找到找到“我自己”或“自己”的方法。

我知道我连接了一个刚体 2D,因为我可以在不实例化或添加任何组件的情况下控制汽车。

function FixedUpdate () 
{
    // Controls the velocity of the car
    rigidbody2D.angularVelocity = 0;
}

关于如何删除上述游戏对象(包括刚体2D)并停止/停用所有附加到它的脚本的任何线索?

我想我可以用“Destroy(GameObject)”破坏游戏对象(以及与之相关的所有东西),只是不确定如何正确设置游戏对象。

编辑:此外,知道用于该 GameObject 实例的预制件的名称将非常有益(不同的预制件使用相同的脚本)。

4

1 回答 1

2

好吧,每个脚本都有一个名为“gameObject”的属性,它是脚本当前附加到的游戏对象。所以是的,你的线索是对的,你可以调用 Destroy (gameObject)。如果脚本附加到对象上,则 gameObject 属性由 Unity 设置

[编辑] 这样做也会破坏附加到对象的所有组件(包括脚本)

于 2015-01-07T18:55:15.590 回答