带有 boxcollider 的 Unity 2D C# hitbox
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
您只需在碰撞事件中添加以下内容,即可轻松检查碰撞器的类型:
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
语句中你可以做你需要的。
我在屏幕上有一些游戏对象,并在它们上面添加了一个多边形碰撞器来检测与它们的正常碰撞。我想在他们的头上添加一个盒子对撞机来检测爆头。请问我该怎么做?请问我如何在 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
您只需在碰撞事件中添加以下内容,即可轻松检查碰撞器的类型:
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
语句中你可以做你需要的。