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的面部方向, 不够准确;最好使用上一个方法,通过


浙公网安备 33010602011771号