我有箭头和敌人的刚体。两者都在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);
}
}
答案 0 :(得分:0)
碰撞需要一个Rigidbody
。在OnCollisionEnter
中,您可以检查coll
参数是否附加了刚体。然后才施加伤害。
答案 1 :(得分:0)
我刚给敌人添加了一个盒子对撞机,并将rigidbody2D设置为&#34;是运动学的。&#34;这让敌人能够在我仍然可以碰撞的情况下相互叠加。还使用OnTriggerEnter2D(coll: Collider2D)
代替OnCollisionEnter2D(coll: Collision2D)
。