Как повернуть спрайт по оси z, по направлению Vector3?
Игра 2Д. Вычисляю направление, куда будет лететь снаряд от игрока к врагу и спавню снаряд таким кодом:
private Vector3 fireDirection;
private void GetEnemyPosition()
{
fireDirection = (enemy.transform.position - transform.position).normalized;
Instantiate(fireball, player.transform.position, Quaternion.identity);
}
Таким образом, к примеру, в fireDirection получаются значения x:-0.8622108 y:0.5065495 z:0
Собственно. запускаю снаряд таким образом. Летит он точно в сторону врага, а вот повёрнут всегда на z:0:
void Update()
{
transform.Translate(fireDirection * Speed * Time.deltaTime);
}
Вопрос: Каким способом можно найти угол между этими х и у и задать оси вращения z это значение(если это конечно так вычисляется), или каким ещё способом можно это сделать? Т.е, куда летит снаряд, туда и будет повёрнут его спрайт по оси z.
P.S И ещё доп. вопрос: есть ли разница, в производительности, качестве кода или ещё в чём-то, если в 2д игре я использую Vector3 вместо Vector2? Спасибо.