我有一个对象Enemy
和另一个Wall
敌人有CapsuleCollider
,而沃尔有BoxCollider
围墙可防止玩家穿过围墙。但是我希望敌人可以穿过墙。
我想做的是设置一个array
,让我希望敌人通过的所有墙壁,而不是忽略与敌人物体的碰撞:
for (var i = 0; i < wand.Length; i++)
{
Physics.IgnoreCollision(wand[i].GetComponent<Collider>(), GetComponent<Collider>());
}
但是当他们试图穿过墙壁时,它们仍然会被挡在墙上。
我无法将敌人的对撞机设置为扳机,因为我需要碰撞以防止它们穿过其他物体。
我也从那个站点尝试过这个: https://forum.unity.com/threads/ignore-collisions-by-tag-solved.60387/
function OnCollisionEnter (collision : Collision) {
if (collision.gameObject.tag == "Wall") {
Physics.IgnoreCollision(collision.collider, collider);
}
}
但是它也不起作用。
有人知道如何解决吗?
答案 0 :(得分:3)
将它们放置在不同的图层中,然后进行设置,以使它们不会相互碰撞。