![](/img/trans.png)
[英]C# Unity 3D - How to use a BoxCollider to check if a position is inside of it?
[英]Unity 2D C# hitbox with boxcollider
我在屏幕上有一些游戏对象,并在它们上添加了一个多边形对撞机,以检测与它们的正常碰撞。 我想在他们的头上添加一个盒子对撞机以检测爆头。 我该怎么办? 我该如何在C#中声明与盒对撞机而不是多边形对撞机的碰撞?
我尝试了这个,但是只有多边形对撞机被检测到
void OnCollisionEnter2D(Collision2D col) {
if(col.gameObject.tag == "target")
{
score += 1000;
gameObject.SetActive (false);
gameObject.SetActive (true);
Destroy (col.gameObject);
}
else if(col is BoxCollider2D)
{
score += 2000;
gameObject.SetActive (false);
gameObject.SetActive (true);
Destroy (col.gameObject);
}
}
只需在该项目上再添加一个BoxCollider2D Component并将其放在头部上即可。 记住要牢记以下几点: https : //docs.unity3d.com/Manual/CollidersOverview.html
您只需将其添加到Collision事件中,即可轻松检查撞到哪种类型的对撞机:
void OnCollisionEnter(Collision col)
{
if (col is BoxCollider2D)
{
//When it hits the box
}
else if(col is PolygonCollider2D)
{
//When it hits the polygon
}
}
在这种情况下,它将检查对撞机是BoxCollider2D还是PolygonCollider2D,并且在每个if
语句中您都可以执行所需的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.