大致实现如下
其中turnSmoothVelocity与turnSmoothTime可以自行设置
Transform cam = Camera.main.transform;
float targetAngle = Mathf.Atan2(_playerVelocity.x, _playerVelocity.z) * Mathf.Rad2Deg + cam.eulerAngles.y;
float angle = Mathf.SmoothDampAngle(model.eulerAngles.y, targetAngle, ref turnSmoothVelocity, turnSmoothTime);
model.rotation = Quaternion.Euler(0f, angle, 0f);
var dir = (Quaternion.Euler(0f, targetAngle, 0f) * Vector3.forward).normalized; //自动旋转