【发布时间】:2017-06-08 10:08:25
【问题描述】:
我是 unity 3d 的新手,我必须在退出项目时做一些增强。如果用户选择正确的选项,那么我必须在运行时在按钮周围显示一些粒子。 我添加粒子的代码如下..不工作:
ParticleSystem ps = GetComponent<ParticleSystem>();
ps.Play ();
我还从统一编辑器中添加了粒子组件..
提前致谢
编辑:
正如@kardux 建议的那样:
声明:
[SerializeField] private ParticleSystem ps;
关于方法:
ps.Play()
检查员截图:
错误:
I/Unity (23313): NullReferenceException
I/Unity (23313): at UnityEngine.ParticleSystem.<Play>m__0 (UnityEngine.ParticleSystem ps) [0x00001] in /Users/builduser/buildslave/unity/build/artifacts/generated/common/modules/ParticleSystem/ParticleSystemBindings.gen.cs:3666
I/Unity (23313): at UnityEngine.ParticleSystem.IterateParticleSystems (Boolean recurse, UnityEngine.IteratorDelegate func) [0x00003] in /Users/builduser/buildslave/unity/build/artifacts/generated/common/modules/ParticleSystem/ParticleSystemBindings.gen.cs:3780
I/Unity (23313): at UnityEngine.ParticleSystem.Play (Boolean withChildren) [0x00020] in /Users/builduser/buildslave/unity/build/artifacts/generated/common/modules/ParticleSystem/ParticleSystemBindings.gen.cs:3666
I/Unity (23313): at UnityEngine.ParticleSystem.Play () [0x00005] in /Users/builduser/buildslave/unity/build/artifacts/generated/common/modules/ParticleSystem/ParticleSystemBindings.gen.cs:3661
【问题讨论】:
-
要让粒子系统开始发射粒子,您必须将所需的粒子数设置为emit。换句话说,您可以在调用
Play函数之前执行ps.Emit(10);。 -
我尝试将其用于 ps.Emit( (int) (75 * Time.deltaTime) );但它不起作用......
-
@Hristo 你不需要在代码中设置发射。你应该在编辑器中设计它。
标签: unity3d particle-system unity-components