Unity C#实例化粒子系统预制件

时间:2014-09-08 16:41:49

标签: c# unity3d particle-system

我正在制作一个游戏,你可以在远处飞过的敌机上发射弹药。当弹药与飞机碰撞时,实例化粒子系统预制件。这一切都很好,除非飞机转换到显示器的左半部分,爆炸不会发生。它在屏幕的右半部分工作正常。代码如下:这是来自我修改的在线教程添加爆炸。飞机在碰撞时被摧毁,但爆炸只发生在显示器的右半部分。 ammoExplosion是一个公共游戏对象,在类中定义并在检查器中分配。任何建议都表示赞赏。

void OnTriggerEnter2D(Collider2D collider){
    if(collider.gameObject.tag == "Ammo"){
        GameObject e = Instantiate (ammoExplosion) as GameObject;
        e.transform.position = transform.position;
        e.renderer.sortingLayerName = "Foreground";
        e.renderer.sortingOrder = 13;
        Destroy (transform.gameObject); // Destroy fighter.
        Destroy (collider.gameObject);  // Destroy ammo.
        Destroy (e,0.7f);
    }
}

3 个答案:

答案 0 :(得分:1)

最常见的是我在定位和粒子系统方面存在一些问题,当时我没有在“Instantiate”方法中设置位置:

更改为:

GameObject e = (GameObject)Instantiate(ammoExplosion, transform.position, Quarternion.identity);

答案 1 :(得分:0)

也许它是粒子系统配置中的模拟空间问题。面板? 你可能应该使用" world"。

答案 2 :(得分:0)

我终于找到了答案,这是由于一个愚蠢的错误。我错误地将一个剧本附加到爆炸预制件上。当我删除脚本时,一切都很完美。谢谢你的建议。我很感激他们。