如何在撞击点在 Unity 中创建粒子

How to create particles in Unity at a point of impact

所以我正在开发一个 Pong 项目,作为一种学习工具,帮助我习惯将 Unity 作为开发工作室。我想要做的是在每次球击中任一球拍时创建一个粒子系统。所以我在每个桨下放了一个粒子系统作为子系统,并在每次球与 C# 中的桨接触时调用该粒子系统。它不起作用,我想做到这一点,所以它会在球和球拍之间的撞击点调用粒子系统。这是我目前拥有的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ExplosionScript : MonoBehaviour {

public GameObject explosionParticle;

void OnCollisionEnter2D (Collision2D coll) {
    if (coll.collider.CompareTag ("Player")) {
        Explode ();
    }
}

void Explode () {
    Instantiate (explosionParticle, Vector3.zero, Quaternion.identity);
}
}

此代码附加到球游戏对象。

尝试 explosionParticle.Play();实例化后。

通常我会创建一个单独的 ParticleSystem gameobject 而不是子项,因此我可以预制或修改它。那我声明 public ParticleSystem explosion; 然后将 ParticleSystem 游戏对象附加到 ball explosion 属性.

在代码中我会这样做

Instantiate(explosion, transform.position, Quaternion.identity); explosion.Play();