Проблема была в различии Update и FixedUpdate
(Длина кадра у этих двух различается) FixedUpdate выполняется после отрисовки каждого фиксированного кадра. Отличие от update заключается в том, что FixedUpdate выполняется в визуализированном кадре. Если эффективность визуализации низкая, количество вызовов FixedUpdate уменьшится. FixedUpdate больше подходит для расчета физического движка, потому что он связан с рендерингом каждого кадра. Обновление больше подходит для контроля.
Мне помогли люди из комментариев выше
Если кому надо, вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SitDown : MonoBehaviour
{
public GameObject cameraGood;
public float speed = 5;
bool negr = false;
void Update()
{
SitDownPls();
}
void SitDownPls()
{
if (Input.GetKeyDown( KeyCode.LeftControl))
{
if (negr == false)
{
print("ctrlDown");
speed = 10;
cameraGood.transform.Translate(Vector3.down * Time.deltaTime * speed );
negr = true;
FirstPersonMovement.speed = 2;
FirstPersonMovement.runSpeed = 2;
}
else
{
print("ctrlUp");
FirstPersonMovement.speed = 5;
FirstPersonMovement.runSpeed = 9;
speed = -10;
cameraGood.transform.Translate(Vector3.down * Time.deltaTime * speed );
negr = false;
}
}
}
}