Связанная ветка reddit
Я боролся с ошибкой столкновения, которая возникает только при установке игры на устройство Android.
У меня очень простая игра, например, воздушный хоккей.Некоторые объекты, представляющие весла, шайбу, пару конечных зон для подсчета очков и стены.Всякий раз, когда я перемещаю одно из лопастей и сталкиваю его с шайбой с очень низкой скоростью, мои события ontriggerenter2d запускаются в моих конечных зонах, даже если шайба находится далеко от конечных зон.Вот моя функция OnTriggerEnter2d в моем скрипте контроллера конечной зоны:
// EndZone
void OnTriggerEnter2D(Collider2D Other)
{
Debug.Log("EndZone::OnTriggerEnter2D " + playerNumber.ToString());
if (Other.gameObject.tag == "Puck")
{
Observer.SendMessage("Score", "" + playerNumber.ToString());
}
}
Я не уверен, какая другая информация может иметь отношение.Я предоставлю все, что требуется, включая весь мой проект, если это будет сочтено необходимым.
Эта ошибка возникает только тогда, когда я на самом деле собираюсь на Android, а не когда я запускаю игру на рабочем столе.Даже если я использую планшет и пульт ДУ для ввода информации.
Обновление: я узнал еще немного информации:
Код от моего PaddleController, подключенного к моим веслам:
void OnCollisionEnter2D(Collision2D coll)
{
Debug.Log("PaddleController::OnCollisionEnter2D " + coll.gameObject.tag);
if (coll.gameObject.tag == "Puck")
{
// Commenting out the following "AddForce" statement causes the bug to not happen
coll.gameObject.GetComponent<Rigidbody2D>().AddForce(CurrVelocity);
SoundManager.RandomizeSfxPitch(click);
}
}
void OnCollisionStay2D(Collision2D coll)
{
if (coll.gameObject.tag == "Puck")
{
// Commenting out the following "AddForce" statement causes the bug to not happen
coll.gameObject.GetComponent<Rigidbody2D>().AddForce(CurrVelocity);
}
}