Unity黑魂復刻經典教程心得(三)-CameraController
阿新 • • 發佈:2021-02-12
技術標籤:web 3D開發
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是個啥?不是陣列?是物件?