GetMouseButtonDown
вернет true
только в том кадре, в котором была нажата кнопка мыши.Это означает, что если вы удерживаете его, ваш блок else
будет запускать каждый кадр, кроме того, который был нажат.Вместо этого вы можете проверить, отпущена ли мышь, с помощью GetMouseButtonUp
и изменить ее обратно, когда это произойдет:
if (Input.GetMouseButtonDown(0))
{
rb.gravityScale = 2f;
}
if (Input.GetMouseButtonUp(0))
{
rb.gravityScale = .3f;
}
, или вы можете быть более точным с вашим первым if
, а затемиспользуйте пустой else
:
if (Input.GetMouseButtonDown(0) || Input.GetMouseButton(0))
{
rb.gravityScale = 2f;
}
else
{
rb.gravityScale = .3f;
}
GetMouseButton
вернет true
во время любого удерживаемого кадра.