Unity Instantiate 命令无法正常工作
Unity Instantiate command not working properly
每当我尝试在 Unity 3D 中实例化粒子系统时,命令都会定位粒子但不会 play/runs 动画。
这是我的代码
GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactGO, sleep_);
Unity version-2021.1.1f1
Positions the particles, but doesn't play/run the animation
如果您的代码成功实例化了粒子系统,它似乎做到了。有多种方法可以确保它在创建时启动。
清醒游戏:
然后你需要确保粒子系统Play On Awake
设置为enabled
。因为这将确保粒子系统在场景中创建后立即开始播放。
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;
每当我尝试在 Unity 3D 中实例化粒子系统时,命令都会定位粒子但不会 play/runs 动画。
这是我的代码
GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactGO, sleep_);
Unity version-2021.1.1f1
Positions the particles, but doesn't play/run the animation
如果您的代码成功实例化了粒子系统,它似乎做到了。有多种方法可以确保它在创建时启动。
清醒游戏:
然后你需要确保粒子系统Play On Awake
设置为enabled
。因为这将确保粒子系统在场景中创建后立即开始播放。
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;