Unity黑魂复刻经典教程心得(三)-CameraController
程序员文章站
2022-03-26 17:23:32
...
PlayerHandle->CameraHandle->MainCamera
为啥要有两层容器,如果都在一层是,是不对的,同时进行X和Y轴旋转,会有问题
根据输入来控制rotation
MouseSensitivity是鼠标敏感度,Input.GetAxis获取的是鼠标的位移量,不是绝对位置
相机的初始位置和目标的eularAngles保持一直
mouseY = currentTarget.eulerAngles.x;
mouseX = currentTarget.eulerAngles.y;
var Y = Input.GetAxis(rotateCameraYInput);
var X = Input.GetAxis(rotateCameraXInput);
public void RotateCamera(float x, float y)
{
// free rotation
mouseX += x * xMouseSensitivity;
mouseY -= y * yMouseSensitivity;
movementSpeed.x = x;
movementSpeed.y = -y;
if (!lockCamera)
{
mouseY = vExtensions.ClampAngle(mouseY, yMinLimit, yMaxLimit);
mouseX = vExtensions.ClampAngle(mouseX, xMinLimit, xMaxLimit);
}
else
{
mouseY = currentTarget.root.localEulerAngles.x;
mouseX = currentTarget.root.localEulerAngles.y;
}
}
更加角色的位置来计算camera的位置
锁定模式下的
1、camera的position
2、camera的rotation水平和垂直的选择
水平旋转的时候,只需要转动PlayerHandle,垂直旋转的时候只需要旋转CameraHandle
可以配置horizontalSpeed和verticalSpeed
3、相机抖动问题
同位角问题??
同位角问题??限制相机上下旋转角度的时候会遇到
啥是欧拉角?四元数??
gameObject.transform是个啥?不是数组?是对象?