Hola,
Puedes usar un transform.lookAt(*target*) cuando te haga falta. Por lo que comentas, justo cuando va atacar para que mire hacia donde quieres. Te dejo el link de la documentación de Unity: https://docs.unity3d.com/ScriptReference/Transform.LookAt.html
En mi caso adapté un pequeño Script para que hiciera la rotación hacia el objetivo de forma algo más suave:
using UnityEngine;
using System.Collections;
public class SmoothLookAt : MonoBehaviour {
public Transform target; //an Object to lock on to
public float damping = 6.0f; //to control the rotation
public bool smooth = true;
private Transform _myTransform;
void Awake() {
_myTransform = transform;
}
void LateUpdate() {
if (target) {
if (smooth) {
//Look at and dampen the rotation
Quaternion rotation = Quaternion.LookRotation(new Vector3(target.position.x, transform.position.y, target.transform.position.z) - _myTransform.position);
_myTransform.rotation = Quaternion.Slerp(_myTransform.rotation, rotation, Time.deltaTime * damping);
} else { //Just look at
_myTransform.rotation = Quaternion.FromToRotation(-Vector3.forward, (new Vector3(target.position.x, transform.position.y, target.position.z) - _myTransform.position).normalized);
}
}
}
}
Un saludo.