Вы можете попробовать OnCollisionStay
справиться с этим при столкновениях.OnCollisionStay
может быть очень тяжелым, если не использовать его осторожно, поэтому вы можете подумать о лучшем способе, если можете.
Вам нужно будет создать новый скрипт, используя следующий код, который вы прикрепите к своему префабу при включении.
bool keepChecking = true;
void OnCollisionStay(Collision collision)
{
if(keepChecking)
{
if(collision.gameobject.tag == "Wall")
{
collision.gameobject.transform.position = new Vector3(Random.Range(-33.0f, 30.0f), 2.35f, Random.Range(30.0f, -35.0f));
}
else
{
keepChecking = false;
}
}
}
https://docs.unity3d.com/ScriptReference/Collider.OnCollisionStay.html
Прочитайте этоссылка и убедитесь, что ваши объекты имеют все требования.Ваша стена и Power-Up должны иметь коллайдеры, и по крайней мере один из этих двух должен иметь твердое тело.Ни один из этих объектов не должен быть кинематическим.
Дайте мне знать, если это работает для вас.