Описание
Создает поворот от 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;
}
}