c# - 如何在unity3D中销毁游戏对象但具有粒子效果?
问题描述
我现在正在制作一个简单的游戏,当敌人死亡时它会发射粒子。但问题是,一旦它被破坏,粒子效果就会停止。有没有办法解决这个问题?任何帮助是极大的赞赏!我现在使用 Unity 2019.3.9f1。这是我的代码(敌人)-----
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("bomb"))
{
GetComponent<ParticleSystem>().Play();
Destroy(enemy);
}
}
解决方案
一种选择是在销毁游戏对象(创建新游戏对象)之前实例化粒子系统,并为这个新游戏对象分配生命周期:
Destroy(newGameObject, secondsToDestroy);
您还可以执行类似的操作:https ://answers.unity.com/questions/610673/how-to-destory-a-gameobject-in-c-after-3-seconds.html
更新
public ParticleSystem ps;
// Start is called before the first frame update
void Start()
{
GameObject go = Instantiate(ps.gameObject);
Destroy(go, 10.0f);
Destroy(this.gameObject);
}
推荐阅读
- reactjs - 缺少道具的类型注释
- python - 调用 cross_val_score 时出现 ValueError
- symfony - 如何在 Symfony 中获取 Redis 队列中未处理消息的数量
- continuous-integration - OWASP ZAP HTTP POST 扫描未使用导入的 URL 执行
- python - 无法控制 api json 格式、文本或视频结果?
- r - 从R studio,tidyverse中将数值与字符分开
- django - Django:无法使用 TemplateView.as_view() 加载管理页面和 HTML 页面
- java - 如何使用java在excel中读取列?
- spring-mvc - 如何从 Liferay 7.1 中的 url 中删除 '/o' 前缀
- html - 如何从值为真的 JSON 中提取键