0

当 OnCollisionEnter 函数启动时,我播放了 2 个音频剪辑,我还想在发生碰撞的位置显示一个粒子系统。

这是代码;

private var beenHit : boolean = false;
private var targetRoot : Animation;
var hitSound : AudioClip;
var chitSound : AudioClip;
var resetSound : AudioClip;
var resetTime : float = 3.0;
var dieEffectsPrefab : Transform;

public ParticleSystem DestructionEffect;

   function OnCollisionEnter() {
     audio.PlayOneShot(chitSound);
     audio.PlayOneShot(hitSound);



     Debug.Log("HitSomething");
     animation.CrossFade ("dying");
     Destroy(gameObject,1);

}
4

2 回答 2

0

在“GameObject”类型的代码中添加一个变量。

在“创建”->“粒子系统”中创建“粒子系统”。以您想要的方式配置它。

将其拖动到一个“预制件”。

在 Unity 编辑器中,将您的预制件拖到“GameObject”中。

添加代码行:

实例化(MyGameObject,this.transform.position,this.transform.rotation);

这行代码实例化了世界中的“GameObject”。

在他的“预制”粒子标记中:“Play On Awake”。

所以当你在世界中实例化你的粒子时,它会自动给出“播放”。

按照这个一步一步...你得到你想要的。

我希望这有帮助!

于 2013-10-20T03:56:01.303 回答
0

让我们拿 GameObject A 和 GameObject B

  1. A & B - 应该有一个对撞机
  2. 一个 || B - 任何人都应该有一个刚体。
  3. 在 A(或)B 脚本中实现 OnCollisionEnter()。
  4. 当碰撞触发器获取particleSystem的实例并实现

    例如:particleInstance.Play(); 它将开始播放粒子系统。

    谢谢。

于 2015-05-15T10:26:06.753 回答