Сделал пока вот так, но всеравно шарик вылетает не идеально ровно(отклонение где то на 15 градусов)
public Transform Direction;
public Transform Destination;
Vector3 D;
void OnTriggerEnter(Collider x)
{
if (x.name == "Sphere")
{
D = Direction.position - Destination.position;
x.transform.position = Destination.transform.position;
x.rigidbody.velocity = D * x.rigidbody.velocity.magnitude;
}
}
Destination - месторасположение портала
Direction - пустой объект напротив портала(им задаю направление выхода)