Unity中的欧拉角与四元数

Quaternion.Euler()          将欧拉角转换为四元数

//设置物体旋转
//直接给欧拉角赋值
transform.eulerAngles = new Vector3(45, 45, 45);

//将欧拉角转换为四元素,赋值给rotation
transform.rotation = Quaternion.Euler(new Vector3(45,45,45));

Quaternion.LookRotation()让物体面朝目标物体

    public Transform target;//要面向的目标物体
    public float speed = 1f;
   
    void Update()
    {
        //得到一个由当前物体指向目标物体的向量
        Vector3 direction = target.position - transform.position;
        direction.y = 0;
        Quaternion targetRotation = Quaternion.LookRotation(direction, Vector3.up);
        //让旋转有一个缓动效果
        //使用Lerp
        //transform.rotation = Quaternion.Lerp(transform.rotation,
        //    targetRotation, Time.deltaTime * speed);
        //使用Slerp
        transform.rotation = Quaternion.Slerp(transform.rotation,
            targetRotation, Time.deltaTime * speed);
    }

 

你可能感兴趣的:(Unity基础)