亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有人可以解釋一下我如何用這段代碼調用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 關注
  • 181 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號