Skip to main content

四元数

四元数

用来旋转的

朝向

  • Quaternion.LookRotation
public static Quaternion LookRotation (Vector3 forward, Vector3 upwards= Vector3.up);

参数 forward 要查看的方向。 upwards 定义向上方向的向量。 描述 使用指定的 forward 和 upwards 方向创建旋转。

Z 轴将与forward对齐,X 轴与 forward 和 upwards 之间的差积对齐,Y 轴与 Z 和 X 之间的差积对齐。 如果 forward 或 upwards 量值为零,则返回恒等。 \如果 forward 和 upwards 共线,则返回恒等。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
public Transform target;

void Update()
{
Vector3 relativePos = target.position - transform.position;
relativePos.y = 0; // 不低头
Quaternion rotation = Quaternion.LookRotation(relativePos, Vector3.up);
transform.rotation = rotation;
}
}

插值旋转

  • Quaternion.Slerp
  • Quaternion.Lerp
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
public Transform target;

void Update()
{
Vector3 relativePos = target.position - transform.position;
relativePos.y = 0; // 不低头
Quaternion rotation = Quaternion.LookRotation(relativePos, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation,rotation,Time.deltaTime);
// 还有一个 Quaternion.Lerp
}
}