//Повернуть камеру на указанный угл public void ViewAngleCalc() { //Сперва проверяем активен ли гейм плей и Активно ли управление мышью if (gameController.GamePlay_yn && gameController.Mouse_control_yn && gameplayParametrs != null && !gameplayParametrs.pause) { //блочим курсор if (Cursor.lockState != CursorLockMode.Locked && mouse_control_on) { Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; } else if (!mouse_control_on && old_mouse_lock == true) { old_mouse_lock = false; Cursor.lockState = CursorLockMode.None; Cursor.visible = true; } float dx = Input.GetAxis("Mouse X"); float dy = Input.GetAxis("Mouse Y"); PiiController piiController = bolt.GetComponent <PiiController>(); //меняем угл просмотра if (seting == null && mouse_control_on) { ViewAngle_y += dx * MouseSpeed * Time.deltaTime; ViewAngle_x -= dy * MouseSpeed * Time.deltaTime; } else if (seting != null && seting.game != null && mouse_control_on) { if (!piiController.ChargeOn) { ViewAngle_y += dx * seting.game.speedController * 0.5f; ViewAngle_x -= dy * seting.game.speedController * 0.5f; } else { ViewAngle_y += dx * seting.game.speedController * Time.deltaTime; ViewAngle_x -= dy * seting.game.speedController * Time.deltaTime; } } //Debug.Log(mouse_pos_old_y + " " + Input.mousePosition.y); //Cursor.lockState = CursorLockMode.None; float view_angle_new_x = ViewAngle_x - (view_angle_old_x - ViewAngle_x) / 1.1f; float view_angle_new_y = ViewAngle_y - (view_angle_old_y - ViewAngle_y) / 1.1f; view_angle_old_x = ViewAngle_x; view_angle_old_y = ViewAngle_y; //ViewAngle_x = view_angle_new_x; //ViewAngle_y = view_angle_new_y; //PiiController piiController = bolt.GetComponent<PiiController>(); //Расчет постоянного смещения //inerciaPii.NewCalc(); float piicoof = piiController.speed_pii / 10; if (piicoof > 1) { piicoof = 1; } if (piiController.ChargeOn) { inerciaPii.NewCalc(); ViewAngle_x += (inerciaPii.Smehenie.x / 6) * piicoof; ViewAngle_y += (inerciaPii.Smehenie.y / 6) * piicoof; ViewAngle_x = view_angle_new_x; ViewAngle_y = view_angle_new_y; } else { //ViewAngle_x += (inerciaPii.Smehenie.x / 3) * piicoof; //ViewAngle_y += (inerciaPii.Smehenie.y / 3) * piicoof; } //} //Проверяем границы if (ViewAngle_x > 50) { ViewAngle_x = 50; } else if (ViewAngle_x < -60) { ViewAngle_x = -60; } //Границы по бокам ограничиваем ускорением в противоположную сторону float ViewAngle_y_max = 85; if (ViewAngle_y > ViewAngle_y_max) { //ViewAngle_y = 50; float raznica = ViewAngle_y - ViewAngle_y_max; if (!piiController.ChargeOn) { ViewAngle_y -= raznica / 2 * Time.deltaTime * 5; } else { ViewAngle_y -= raznica / 2 * Time.deltaTime; } endViewWindow.set_all_need(0, raznica / 30, 0, 0); } else if (ViewAngle_y < -1 * ViewAngle_y_max) { //ViewAngle_y = -50; float raznica = ViewAngle_y + ViewAngle_y_max; if (!piiController.ChargeOn) { ViewAngle_y -= raznica / 2 * Time.deltaTime * 5; } else { ViewAngle_y -= raznica / 2 * Time.deltaTime; } endViewWindow.set_all_need(-1 * raznica / 30, 0, 0, 0); } //Меняем данные у обьектов gameObject.transform.eulerAngles = new Vector3(0, ViewAngle_y); float presure = bolt.GetComponent <PiiController>().speed_pii; camera.transform.eulerAngles = new Vector3(ViewAngle_x + ViewCamMinus, ViewAngle_y); bolt.transform.eulerAngles = new Vector3(ViewAngle_x + presure * 0.4f, ViewAngle_y); //Визуализация лицевого индикатора if (faceController != null) { faceController.set_face_grad(ViewAngle_y); } } else if (gameplayParametrs.pause) { if (!mouse_control_on && old_mouse_lock == true || Cursor.lockState == CursorLockMode.Locked) { old_mouse_lock = false; Cursor.lockState = CursorLockMode.None; Cursor.visible = true; } } }