Это понятно. Можно хоть в методы экстрактнуть хоть в класс. Просто у меня именно вопрос в том как эти ифы выставить. Типо. К примеру есть 4 стейта - Idle, Move, Jump, Fall. По логике, то чтобы от Idle перейти к Move значение Horizontal или Vertical > 0 и isGrounded должно быть true. Но если вот так, основываясь на логике, выставлять эти условиях то на стыках происходят всякие глитчи либо вообще не работает....
Может эта проблема решиться если правильно сделать логику Jump И Fall? Я пытался подстроить ту же логику, которая используется в очень простых PlayerController'ах. Типо
yVelocity += Gravity * Time.deltaTime;
if(isGrounded)
{ yVelocity = 0f; }
и потом типо просто использовать значение yVelocity на месте для игрика в векторе, которые передаетчя в CharactetController.Move(). Но то, что получилось, при объединение этого с стейт паттерном, мягко говоря не работает...