Полазив по сети посмотрел на примеры, составил свой, ходит правильно, если стоять на месте то вертит головой правильно, но вот если ходить и вертеть то получается не то, не пойму что не так, вроде голову поворачиваю отдельно от тела, но движение влияет на вид от лица, плюс при каждом нажатии скачет курсор в центр, подскажите что не так?
public partial class Player : MonoBehaviour{
private float SettingsMouseSensitivityLook = 10f;
[HideInInspector] public GameObject PlayerModel;
[HideInInspector] public GameObject PlayerHead;
[HideInInspector] public Camera PlayerCamera;
[HideInInspector] public CharacterController PlayerHeadCharacterController;
private float InputGetAxisVertical{ get { return Input.GetAxis("Vertical") * 3f; }}
private float InputGetAxisHorizontal{ get { return Input.GetAxis("Horizontal") * 120.0f; }}
private float InputGetAxisMouseY{ get { return Input.GetAxis("Mouse Y") * SettingsMouseSensitivityLook; }}
private float InputGetAxisMouseX{ get { return Input.GetAxis("Mouse X") * (SettingsMouseSensitivityLook / 2f); }}
private float MoveHeadY, MoveHeadX;
private void Update(){
MovePlayer();
AimCamera();
}
private void MovePlayer(){
PlayerModel.transform.Translate(0, 0, InputGetAxisVertical * Time.deltaTime);
PlayerModel.transform.Rotate(0, InputGetAxisHorizontal * Time.deltaTime, 0);
}
private void AimCamera(){
if(Input.GetMouseButton(0)){
MoveHeadY -= InputGetAxisMouseY;
MoveHeadY = Mathf.Clamp(MoveHeadY, -40f, 40f);
MoveHeadX += InputGetAxisMouseX;
MoveHeadX = Mathf.Clamp(MoveHeadX, -75f, 75f);
PlayerHeadCharacterController.transform.rotation = Quaternion.Euler(MoveHeadY, MoveHeadX, 0f);
}
}
}