Вы не должны использовать силы, если хотите, чтобы ваш жесткий корпус двигался с постоянной скоростью.
Вместо этого, установите значение «шарика» вашего шара drag
равным 0 и задайте ему начальную скорость.
void Start(){
rigi.velocity=new Vector3(1f,1f,0f); //set any starting velocity you want
}
Тогда вы можете просто изменить направление движения, когда мяч ударяет о стену:
OnTriggerEnter(Collider other) {
if(other.gameObject.tag == "rightWall" || other.gameObject.tag == "leftWall")
{
rigi.velocity=new Vector3(-rigi.velocity.x, rigi.velocity.y, rigi.velocity.z);
} else if(other.gameObject.tag == "groundWall")
{
rigi.velocity = new Vector3(rigi.velocity.x, 10, rigi.velocity.z);
}
}
В вашем случае я бы также посоветовал сделать жесткое тело kinematic
, чтобы избежать ошибок при движении