为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
达令说 2023-12-17 17:07:23
所以我有一个从另一个类调用的脚本,我想知道如何编写这个脚本来仅破坏 ridgedbody 2d。我知道它会将精灵保留在场景中,这正是我正在寻找的。private void OnTriggerEnter2D(Collider2D other)      {      DamageDealer damageDealer = other.gameObject.GetComponent<DamageDealer>();      health -= damageDealer.GetDamage(); }
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

如果您传入对 的 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);


查看完整回答
反对 回复 2023-12-17
  • 1 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信