第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

粒子系統(tǒng) OnTriggerEnter 不起作用(但所有其他功能都起作用)

粒子系統(tǒng) OnTriggerEnter 不起作用(但所有其他功能都起作用)

C#
烙印99 2023-08-20 15:01:23
我有簡(jiǎn)單的腳本,當(dāng)敵人擊中玩家=負(fù)1生命時(shí)的onTriggerEnter2d等,效果完美?,F(xiàn)在我想向其中添加粒子系統(tǒng)爆炸,但什么也沒有發(fā)生。不確定我做錯(cuò)了什么。玩家擁有 BoxColder2d,并勾選了觸發(fā)器。謝謝你的幫助。一些代碼:敵人: public ParticleSystem explosion; private void OnTriggerEnter2D(Collider2D enter) { if (enter.gameObject.tag.Equals("Player")) {     HartCount.HartValue -= 1;     gameObject.GetComponent<ParticleSystem>().Play();     Destroy(this.gameObject); } }我也嘗試過這個(gè): public GameObject explosion; private void OnTriggerEnter2D(Collider2D enter) { if (enter.gameObject.tag.Equals("Player")) {     HartCount.HartValue -= 1;     Instantiate (explosion, transform.position, Quaterion.identity);     Destroy(this.gameObject); } }
查看完整描述

2 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

考慮到您尚未將粒子系統(tǒng)作為游戲?qū)ο蟮淖訉?duì)象,請(qǐng)嘗試以下操作:


public GameObject explosion;  //drag the particle system prefab here

private void OnTriggerEnter2D(Collider2D enter)

{

   if (enter.gameObject.tag.Equals("Player")) //when the enemy collides with the Player

   {

      HartCount.HartValue -= 1;

      GameObject particle = Instantiate (explosion, this.transform.position, Quaterion.identity);

      particle.GetComponent<ParticleSystem>().Play();

      Destroy(this.gameObject);

   }

}

確保粒子系統(tǒng)放大到足夠大,以便它實(shí)際上可見。上面的代碼將在敵人的位置生成一個(gè)您選擇的粒子系統(tǒng)(您已將其拖入編輯器中的“爆炸”字段中的粒子系統(tǒng))。


查看完整回答
反對(duì) 回復(fù) 2023-08-20
?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

因此,經(jīng)過一番挖掘,我找到了導(dǎo)致您問題的可能原因。
粒子系統(tǒng)不會(huì)觸發(fā) OnCollisionEnter 和 OnTriggerEnter 事件。
相反,它們會(huì)觸發(fā)一個(gè)自定義事件,即OnParticleCollision。

本質(zhì)上,可以在粒子系統(tǒng)對(duì)象以及被擊中的對(duì)象上調(diào)用此方法。
你可以這樣使用它:

public ParticleSystem explosion;


private void OnParticleCollision(GameObject other)

{

? ? if (other.tag.Equals("Player"))

? ? {

? ? ? ? HartCount.HartValue -= 1;

? ? ? ? gameObject.GetComponent<ParticleSystem>().Play();

? ? ? ? Destroy(this.gameObject);

? ? }

}

請(qǐng)注意,這是您的代碼的改編副本。

它實(shí)際上還有一個(gè)問題:

你玩了粒子系統(tǒng),但之后你直接銷毀了游戲?qū)ο螅虼肆W酉到y(tǒng)也消失了。


注 1:

文檔缺乏有關(guān)如何檢索有關(guān)粒子碰撞的更多信息的明確信息。

鏈接頁面中的示例代碼使用如下內(nèi)容:


var collisionEvents = new List<ParticleCollisionEvent>();

myParticles.GetCollisionEvents(other, collisionEvents);

其中 myParticles 是對(duì)粒子系統(tǒng)的引用。


但是,沒有關(guān)于此方法的文檔。

相反,有一些關(guān)于過時(shí)的靜態(tài)GetCollisionEvent 的

文檔 ,我想該文檔已經(jīng)過時(shí)了,因此您應(yīng)該使用非靜態(tài)方法。


注 2:

我不確定為什么敵人能夠擊中你的玩家,根據(jù)文檔,這是不應(yīng)該發(fā)生的。

但也許我只是誤解了一些東西。


查看完整回答
反對(duì) 回復(fù) 2023-08-20
  • 2 回答
  • 0 關(guān)注
  • 238 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)