正确播放Particle System组件?

Properly play Particule System component?

如何正确播放附加到 GameObject 的粒子系统组件?我还将以下脚本附加到我的游戏对象,但粒子系统不播放。我该如何解决这个问题?

public Transform gameobject1;
public Transform gameobject2;
public ParticleSystem particules;

void Start()
{
    float distance = Vector3.Distance(gameobject1.position, gameobject2.position);
}

void Update()
{
    if(distance == 20)
  {
      particules.Play();
  }
}

我没看到你在 class 中声明距离,但你在更新时使用了它。将 distance 声明为与您的其他成员的私人浮动,并在开始时定义它。

假设您的代码与此不完全相同,那么您的问题看起来也源于使用具有距离的实体值。尝试使用小于或等于 20。

if(distance <= 20)

或者您可以尝试大于 19 且小于 21。

if(distance <= 21 && distance >= 19)

假设这是您编写的确切代码,您需要首先使用 GetComponent 方法才能对您的粒子系统执行操作

您的代码应如下所示:

public Transform gameobject1;
public Transform gameobject2;
public ParticleSystem particules;
public float distance;

//We grab the particle system in the start function
void Start()
{
    particules = GetComponent<ParticleSystem>();
}

void Update()
{
    //You have to keep checking for the Distance
    //if you want the particle system to play the moment distance goes below 20 
    //so we set our distance variable in the Update function.
    distance = Vector3.Distance(gameobject1.position, gameobject2.position);

    //if the objects are getting far from each other , use (distance >= 20)
    if(distance <= 20) 
    {
        particules.Play();
    }
}