0

所以我正在开发一个 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);
}
}

此代码附加到球 GameObject。

场景层次结构

4

1 回答 1

1

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

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

在代码中我会这样做

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

于 2017-06-13T03:58:08.763 回答