有人可以解释一下我如何用这段代码调用ridgedbody2d吗?

所以我有一个从另一个类调用的脚本,我想知道如何编写这个脚本来仅破坏 ridgedbody 2d。我知道它会将精灵保留在场景中,这正是我正在寻找的。

private void OnTriggerEnter2D(Collider2D other)      {
     DamageDealer damageDealer = other.gameObject.GetComponent<DamageDealer>();
     health -= damageDealer.GetDamage();
}


达令说
浏览 60回答 1
1回答

慕少森

如果您传入对 的 Component 引用,它只会销毁相应的组件,但保留其余的 未受影响DestroyGameObject对象 obj 将立即被销毁,或者如果指定时间 t 秒后将被销毁。 如果 obj 是一个Component,它将从 GameObject 中删除该组件并销毁它 。如果 obj 是 GameObject,它将销毁 GameObject、其所有组件以及 GameObject 的所有变换子级。Destroy(damageDealer.GetComponnet<Rigidbody2D>());如果您经常这样做,最好将此引用存储在 组件的 Awake 中,然后像DamageDealer 一样传递它public class DamageDealer : MonoBehaviour{    // if possible already reference this via the Inspector    [SerializeField] private Rigidbody2D rigidbody;    // This is a read-only property returning the value of rigidbody    public Rigidbody2D Rigidbody => rigidbody;    private void Awake()    {        if(!rigidbody) rigidbody = GetComponnet<Rigidbody2D>();        ...    }    ...}然后你可以简单地做Destroy(damageDealer.Rigidbody);
打开App,查看更多内容
随时随地看视频慕课网APP