微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity Instantiate 命令无法正常工作

如何解决Unity Instantiate 命令无法正常工作

每当我尝试在 Unity 3D 中实例化粒子系统时,该命令都会定位粒子但不播放/运行动画。

这是我的代码

GameObject impactGO = Instantiate(impactEffect,hit.point,Quaternion.LookRotation(hit.normal));
Destroy(impactGO,sleep_);

Unity 版本-2021.1.1f1

解决方法

定位粒子,但不播放/运行动画

如果您的代码成功实例化了粒子系统,这似乎是正确的。有多种方法可以确保它在创建时启动。


醒着玩:

然后您需要确保粒子系统将 Play On Awake 设置为 enabled。因为这将确保粒子系统在您在场景中创建后立即开始播放。

Particle System Main module


ParticleSystem.Play 替代方案:

或者,您可以在创建粒子系统后使用 ParticleSystem.Play 函数在代码中启动它。

ParticleSystem impactPS = Instantiate(impactEffect,hit.point,Quaternion.LookRotation(hit.normal)) as ParticleSystem;
impactPS.Play();
Destroy(impactPS.gameObjkect,sleep_);

获取粒子系统的持续时间:

此外,如果您想获得粒子系统的持续时间,您可以使用 .main.duration。确保您不会在粒子系统完成播放之前破坏您的 gameObject

float sleep_ = impactPS.main.duration;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。