Суть в том, что мне необходимо реализовать рикошет шара. Хочу сделать это без помощи Rigidbody. Пробую сейчас сделать через Raycast. Рикошет действительно получается, но в том случае, если шар выпускаю из координат (0, y), y - любое. В случае, если x отличный от нуля, то рикошет идёт по непонятной мне траектории. Что можете посоветовать? Ниже участок кода с самим рикошетом.
if (Input.GetKey(KeyCode.Space))
{
_direction = transform.up;
}
transform.Translate(transform.TransformDirection(_direction) * Time.deltaTime * _speed);
LayerMask _mask = LayerMask.GetMask("Wall");
if (Physics2D.Raycast(transform.position, _direction, .5f, _mask))
{
GameObject _tempo;
_tempo = Instantiate(_forInstantiate, transform.position, _forInstantiate.transform.rotation); //_forInstantiate необходим для определения перпендикуляра для метода Reflect
_direction = transform.TransformDirection(Vector2.Reflect(transform.position, _tempo.transform.right).normalized);
Destroy(_tempo.gameObject, .1f);
}