我正在处理一段代码,在这里我实例化了一系列GameObject(预制件)的克隆。有几辆汽车随机产生以模拟交通,然后每个克隆都附上几个脚本;一个用于控制AI,一个用于控制碰撞,我希望第三个用于摧毁汽车,当它超出界限时,或者离开游戏太远而无法再看到它。< / p>
问题是,我不知道如何访问脚本当前附加的GameObject。我设法找到了我在OnCollisionEnter2D上碰到的任何GameObject,但我找不到找到&#34;我自己&#34;或者#34;本身&#34;。
的方法。我知道我有一个rigidbody2D附加,因为我可以控制汽车而无需实例化或添加任何组件。
function FixedUpdate ()
{
// Controls the velocity of the car
rigidbody2D.angularVelocity = 0;
}
有关如何删除上述GameObject(包括rigidbody2D)以及停止/停用附加到其上的所有脚本的任何线索?
我认为我可以使用&#34; Destroy(GameObject)&#34;来销毁GameObject(以及附加到它的所有内容),只是不确定如何正确设置GameObject。
编辑:此外,知道用于GameObject实例的预制件名称非常有用(不同的预制件使用相同的脚本)。
答案 0 :(得分:2)
好吧,每个脚本都有一个名为&#34; gameObject&#34;的属性,它是脚本当前附加到的gameObject。 所以,是的,你的线索是正确的,你可以只调用Destroy(gameObject)。 如果脚本附加到对象,则gameObject属性由Unity
设置[编辑] 这样做也会破坏附加到对象
的每个组件(包括脚本)