Описание
Создает поворот от fromDirection к toDirection.
Используйте это, чтобы создать вращение, которое начинается с первого вектора (fromDirection) и поворачивается ко второму вектору (toDirection). Эти векторы должны быть настроены в скрипте.
//This example shows how the rotation works between two GameObjects. Attach this to a GameObject.
//Make sure to assign the GameObject you would like your GameObject to rotate towards in the Inspector
using UnityEngine;
public class SetFromToRotationExample : MonoBehaviour
{
    //This is the Transform of the second GameObject
    public Transform m_NextPoint;
    Quaternion m_MyQuaternion;
    float m_Speed = 1.0f;
    void Start()
    {
        m_MyQuaternion = new Quaternion();
    }
    void Update()
    {
        //Set the Quaternion rotation from the GameObject's position to the next GameObject's position
        m_MyQuaternion.SetFromToRotation(transform.position, m_NextPoint.position);
        //Move the GameObject towards the second GameObject
        transform.position = Vector3.Lerp(transform.position, m_NextPoint.position, m_Speed * Time.deltaTime);
        //Rotate the GameObject towards the second GameObject
        transform.rotation = m_MyQuaternion * transform.rotation;
    }
}
// В этом примере ваш GameObject поворачивается к положению мыши
using UnityEngine;
public class Example2 : MonoBehaviour
{
    Quaternion m_MyQuaternion;
    float m_Speed = 1.0f;
    Vector3 m_MousePosition;
    void Start()
    {
        m_MyQuaternion = new Quaternion();
    }
    void Update()
    {
        //Fetch the mouse's position
        m_MousePosition = Input.mousePosition;
        //Fix how far into the Scene the mouse should be
        m_MousePosition.z = 50.0f;
        //Transform the mouse position into world space
        m_MousePosition = Camera.main.ScreenToWorldPoint(m_MousePosition);
        //Set the Quaternion rotation from the GameObject's position to the mouse position
        m_MyQuaternion.SetFromToRotation(transform.position, m_MousePosition);
        //Move the GameObject towards the mouse position
        transform.position = Vector3.Lerp(transform.position, m_MousePosition, m_Speed * Time.deltaTime);
        //Rotate the GameObject towards the mouse position
        transform.rotation = m_MyQuaternion * transform.rotation;
    }
}


