проблема такая, я делаю 3Д игру и мне необходимо сделать физику воды, ну чтоб персонаж плавал на данный момент я пользуюсь методом OnTriggerEnter и OnTriggerExit в середине метода OnTriggerEnter находится if (other.tag == "Water")
{
isSwimming = true;
rb.useGravity = false;
}
а в OnTriggerExit находится if (other.tag == "Water")
{
isSwimming = false;
rb.useGravity = true;
}
потом я проверяю в Update (): if (Input.GetKey (KeyCode.Space) && isSwimming)
{
transform.Translate (0, SwimmingForse * Time.deltaTime 0)
}
и появляются следующие баги которые надо пофиксить, когда я всплыл меня перемещает обратно в воду по пояс при этом скорость сохраняется и меня тянет на дно если всплить несколько раз то скорость суммируется и даже если я держу пробел я все равно падаю в низ
а если снизу какая-то косая поверхность я лечу в сторону. Я понял что использовать отключение гравитации плохая идея подскажите как лучше сделать