unity3d - Unity Instantiate 命令无法正常工作

标签 unity3d instantiation game-development

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

这是我的代码

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设置为启用。因为这将确保粒子系统在您在场景中创建后立即开始播放。

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;

关于unity3d - Unity Instantiate 命令无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67071725/

相关文章:

c# - Unity C# 中的运动脚本

unity3d - 如何在Unity中录制屏幕并输出为文件

java - 如何在 Java 中正确使用 try-catch-finally block ?

unity3d - 如何在 Unity 中将字符串数组保存到 PlayerPrefs?

c# - 使用 Unity BootStrapper 和 Prsim 将参数传递给 Shell Viewmodel

c++ - 为什么我对数组中的图 block 进行评分的函数不起作用?

lua - <eof> 预计在 'end' 附近

python - Pygame 角色不会向左或向右移动

c++ - 忽略类模板的显式实例化?

grails - Grails域类从EJB扩展时出现的问题