代码之家  ›  专栏  ›  技术社区  ›  SpoocyCrep

在某个位置发射不起作用?

  •  1
  • SpoocyCrep  · 技术社区  · 8 年前

    我想在某个位置发射粒子,而不必移动粒子系统。我发现这个: https://docs.unity3d.com/ScriptReference/ParticleSystem.EmitParams-position.html

    我试过了,但它不会在我想要的位置发射,而是在粒子发射器所在的0,0,0位置发射它们!

       var emitParams = new ParticleSystem.EmitParams();
                    emitParams.position = keyValue.Key;
                    emitParams.velocity = new Vector3(0.0f, 0.0f, 1.0f);
                    SmokeParticles.Emit(emitParams, 100);
    

    keyValue.key是一个保持正确位置的向量。我错过什么了吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Assafs    8 年前

    Unity编辑器在粒子系统设置中有许多属性,其中一个属性是“在唤醒时播放”,它确保粒子系统从一开始就打开。你可以简单地说:

    SmokeParticles.Stop();
    

    在覆盖代码部分之前,然后(0,0,0)粒子系统将关闭。发出调用应该显示您选择的位置。出于测试目的,我还将添加到emitparams中:

    emitParams.startColor = Color.red;
    

    只是为了突出超控发射。

    此外,对于重复排放(为了更好地重现原始结果),请从文档中查看此示例:

    Particle System Emit Documentation.