有关lookrotate相关的数学四元数的知识(更新待定)

有关lookrotate相关的数学四元数的知识(更新待定)

最近在重新学人物的运动,之前学习的东西都是不加理解生硬的接受的,但是渐渐地懂得多了一点点以后觉得理解才是最重要的,所以开始记录一些当时不太理解的api的意义了


记录

  • Lookrotate :Quaternion.Lookrotate(前进的方向,轴);

    • 往往我们会这么用:Quaternion.Lerp 差值运算出来我们的方向和前进的方向做一个渐变转向。

float sp_h = Input.GetAxis("Horizontal");
        float sp_v = Input.GetAxis("Vertical");

        if (Mathf.Abs(sp_h) > .1f || Mathf.Abs(sp_v) > .1f)
        {
            float newSpeed = Mathf.Lerp(anim.GetFloat("Speed"), 5.6f, moveSpeed * Time.deltaTime);
            anim.SetFloat("Speed", newSpeed);

            Vector3 tarDir = new Vector3(sp_h, 0, sp_v);
            //将方向转换为四元数,相当于当前方向到(100)的方向差值,我懂了  
            Quaternion quaDir = Quaternion.LookRotation(tarDir, Vector3.up);
            //缓慢转动到目标点  
            transform.rotation = Quaternion.Lerp(transform.rotation, quaDir, Time.deltaTime * rotateSpeed * 4);

        }
        else
        {
            float newSpeed = Mathf.Lerp(anim.GetFloat("Speed"), 0, stopSpeed * Time.deltaTime);
            anim.SetFloat("Speed", newSpeed);
        }

    }

你可能感兴趣的:(api,unity,基本代码总结,学习总结)