http://answers.unity3d.com/questions/424048/lookrotation-weird-rotation.html
こちらを参考にした
private Vector3 myDirection; public void Face(Vector3 direction) { myDirection = direction; //myTransform.rotation = Quaternion.LookRotation (direction); StopCoroutine("RunFace"); StartCoroutine("RunFace"); } public IEnumerator RunFace() { float speed = 9.1F; Quaternion rot = Quaternion.LookRotation(myDirection); while (true) { //Quaternion rot = Quaternion.LookRotation(transform.position - direction, Vector3.up); myTransform.rotation = Quaternion.Slerp(myTransform.rotation, rot, Time.deltaTime * speed); yield return 1; } }