У меня есть Gameobject
, называемый ball
, и еще один, называемый floor
. Как видно из кода, когда мяч падает на пол, должна быть сделана распечатка.
void OnCollisionEnter2D(Collision2D collision)
{
bg = GameObject.Find(bg_name);
if (collision.gameObject.tag == "floor")
{
//bg.GetComponent<ControlGame>().deleteBall();
//bg.GetComponent<ControlGame>().recreateBall();
print("Ball hit floor");
}
if (collision.gameObject.tag == "rope")
{
bg.GetComponent<ControlGame>().ToggleIsShot(false);
}
}
Проблема в том, что я переместил пол сейчас так, что мяч и пол имеют разныеглубина. Тем не менее, распечатка сделана, хотя два Gameobjects
не касаются. Смотрите скриншоты ниже:
![Printout is made as if a collision has occurred.](https://i.stack.imgur.com/takxh.png)
Печать находится в левом нижнем углу. Почему это так?
Согласно приведенному ниже комментарию, значение z не оказывает влияния. Но у меня есть также детектор столкновений для веревки, которая представляет собой кривую Безье с прикрепленным к ней EdgeCollider2D
. Когда веревка проходит через пол, ничего не срабатывает в onCollisionEnter2D
.
void OnCollisionEnter2D(Collision2D collision)
{
bg = GameObject.Find(bg_name);
if (collision.gameObject.tag == "floor")
{
print("floor collision");
bg.GetComponent<ControlGame>().ShootBall();
}
}