lookrotation vs quaternion.slerp

 void MoveFunc()
    {
        var currentposition = transformself.position;
        if (Input.GetButtonDown("Fire1"))
        {
            var mousetarget = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            movedirection = mousetarget - currentposition;
            movedirection.z = 0;
            movedirection.Normalize();

        }
        var target = currentposition +  movespeed * movedirection;
        transformself.position = Vector3.Lerp(currentposition, target, Time.deltaTime);
        var rotationdegree = Mathf.Atan2(movedirection.y, movedirection.x) * Mathf.Rad2Deg;
        transformself.rotation = Quaternion.Slerp(
            transformself.rotation,
            Quaternion.Euler(0, 0, rotationdegree),
            Time.deltaTime * Turnspeed);
        //This is bad idea;
//        transformself.rotation = Quaternion.LookRotation(target); 
    }

  比如lookrotation 不能改变player的面部方向, 不够准确;最好使用上一个方法,通过

posted @ 2014-07-03 18:21  penney  阅读(453)  评论(0)    收藏  举报