有没有办法让两个触发游戏对象发生碰撞?

时间:2014-11-19 04:38:27

标签: c# triggers unity3d collision gameobject

这适用于2D游戏。

我有一个可以射击触发射弹(带有扳机对撞机)的球员和可以做同样事情的敌人。当一个玩家射弹与敌人发生碰撞时,会发生一些事情,反之亦然。然而,当玩家射弹和敌人的射弹相撞时,他们只是忽略碰撞,相互穿过,没有任何反应。他们还有一个Rigidbody2D,可以连续碰撞检测。

当这两个带触发器碰撞器的游戏对象碰到时,有没有办法让它发生呢?

以下是我为敌人射弹剧本所获得的内容:

void OnTriggerEnter2D( Collider2D other ){
    if (other.gameObject.name == "Ground"){ 
        Destroy (gameObject);
    } 
    else if (other.gameObject.name == "Player"){
        other.gameObject.GetComponent<RControlScript>().RHealth = other.gameObject.GetComponent<RControlScript>().RHealth - damage;
        Instantiate(transformInto, gameObject.transform.position, gameObject.transform.rotation);
        Destroy (gameObject);
    } 
    else if(other.gameObject.name == "Shot"){
        Destroy (gameObject);
    }
}

&#34;拍摄&#34;作为玩家弹丸的名称是游戏对象不与敌人的弹丸相撞。

2 个答案:

答案 0 :(得分:3)

是。

这是一个图表,告诉你什么与Unity3d中的内容相撞。

enter image description here

答案 1 :(得分:0)

好的,事实证明两个触发器碰撞器确实发生碰撞。我的问题是实例化的射弹是克隆,因此它的名字=&#34;射击(克隆)&#34;。不得不改变它以使事情发生。