unity3d oncollisionenter不适用于刚体和nocollider

时间:2014-03-12 03:48:18

标签: unity3d

我有箭头和敌人的刚体。两者都在0 z坐标。我不想使用碰撞器,因为我希望敌人能够堆叠在彼此之上。当我打开碰撞器时,代码工作,对象被破坏。我可以使用另一种仅适用于刚体的功能吗?我认为OnCollicionEnter与刚体一起使用。

箭头

function OnCollisionEnter2D(coll: Collision2D) {
Debug.Log("I hit something");
    coll.gameObject.SendMessage("ApplyDamage", 10);
    Destroy (gameObject);
}

敌人

var health = 20;
function ApplyDamage (damage : float)
{

health -= damage;

if ( health <= 0)
{
Destroy(gameObject);
}
}

2 个答案:

答案 0 :(得分:0)

碰撞需要一个Rigidbody。在OnCollisionEnter中,您可以检查coll参数是否附加了刚体。然后才施加伤害。

答案 1 :(得分:0)

我刚给敌人添加了一个盒子对撞机,并将rigidbody2D设置为&#34;是运动学的。&#34;这让敌人能够在我仍然可以碰撞的情况下相互叠加。还使用OnTriggerEnter2D(coll: Collider2D)代替OnCollisionEnter2D(coll: Collision2D)