【问题标题】:Unity C# instantiating a particle system prefabUnity C# 实例化粒子系统预制件
【发布时间】:2014-11-01 22:59:06
【问题描述】:

我正在开发一款游戏,你可以向从头顶掠过的敌机发射弹药。当弹药与飞机相撞时,会实例化粒子系统预制件。这一切都很好,除了当飞机转换到显示器的左半边时,爆炸不会发生。它在屏幕的右半部分工作正常。代码如下:这是来自我修改以添加爆炸的在线教程。飞机在碰撞时被摧毁,但爆炸只发生在显示屏的右半边。 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);
    }
}

【问题讨论】:

    标签: c# unity3d particle-system


    【解决方案1】:

    最常见的定位和粒子系统问题是我没有在“实例化”方法中设置位置:

    改成这样:

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

    【讨论】:

    • 感谢您的帮助,但这和以前一样。
    【解决方案2】:

    可能是粒子系统配置中的模拟空间问题。控制板? 您可能应该使用“世界”。

    【讨论】:

    • 谢谢。世界没有任何区别。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2019-07-29
      相关资源
      最近更新 更多