Необходимо, чтобы объект paddle толкал объект sphere и второй получал импульс, после этого второй объект бы катился от импульса. То, что получается - это сфера, получающая постоянное ускорение.
private bool isCollisioned = false;
private int impulseCount = 1;
void FixedUpdate()
{
if (isCollisioned && impulseCount == 1)
{
Vector3 sphereVector = gameObject.transform.position;
Vector3 paddleVector = _rootClass._paddleController.transform.position;
directionVector = (sphereVector - paddleVector).normalized;
GetComponent<Rigidbody>().AddForce(
x: directionVector.x * sphereSpeed,
y: 0,
z: directionVector.z * sphereSpeed,
ForceMode.Impulse
);
impulseCount++;
}
}
private void OnCollisionEnter(Collision collision)
{
if (collision.transform.tag == "paddle")
{
isCollisioned = true;
}
}
Если вы хотите жёстко указать точную скорость и направление вашего шара, то зачем вы добавляете силу к уже имеющейся, получая не прогнозируемую и скорость и направление?
directionVector = (sphereVector-paddleVector).normalized*sphereSpeed;
GetComponent<Rigidbody>().velocity = new Vector3(directionVector.x, 0, directionVector.z);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости