если я правильно понимаю, нужно сделать так, чтобы одновременно могли работать несколько состояний, правильно? но касаемо атаки в падении: она не может быть одновременно с обычным падением, потому что анимации разные. я вроде реализовала это только что, но мне кажется, что все равно коряво: я записываю, когда нажимаю на кнопку в отдельную переменную в апдейте и выключаю ее когда персонаж приземляется, и в добавок в методе для анимаци выключаю их в других состояниях и включаю в нужном... (чувствую себя глуповатой):
Update:
if (Input.GetMouseButtonDown(0))
{
mousedownFall = true;
}
if (grounded)
{
mousedownFall = false;
}
private void UpdateAnimationStates()
{
if (state != MovementState.air)
{
animator.SetBool("inAirAttack", false);
animator.SetBool("inAir", false);
}
switch (state)
{
case MovementState.idle:
animator.SetBool("IsStanding", true);
break;
case MovementState.walking:
animator.SetBool("IsWalking", true);
break;
case MovementState.crouching:
animator.SetBool("IsSitting", true);
break;
case MovementState.sprinting:
animator.SetBool("IsRunning", true);
break;
case MovementState.air:
if (mousedownFall)
{
animator.SetBool("inAirAttack", true);
}
if(!mousedownFall)
animator.SetBool("inAir", true);
break;
default:
break;
}
}
Большое спасибо за подсказки по поводу совмещения состояний. Также, попробую сделать состояние рывка еще. Но все равно остается главный вопрос:
если по прошествию 2 секунд клавиша ещё не отпущена, то переводишь состояние в спринт.
как правильно получать то отпущена она или же нет? если проверять в апдейте, то, например, я замжу клавишу и в результате мы получим: в первом кадре она нажата, во втором кадре отпущена, потому что проверка каждый кадр будет. значит, то что я записываю в отдельную переменную, правильно? например сделаю для ПКМ:
if (Input.GetMouseButtonDown(1))
{
test = true;
}
if (Input.GetMouseButtonUp(1))
{
test = false;
}
Kentavr16, К мешу я ни разу не пробовала присоединить, я пыталась присоединить именно к ригу разными способами, как и писала выше:
- сами мечи к ригу
- кости, которые создала и привязала к мечам, к ригу персонажа
- вытягивала кости из рига персонажа и присоединяла к ним мечи
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Update:
касаемо рывка:
я пыталась сделать так:
Метод:
statehandler:
но это работает криво.
Большое спасибо за подсказки по поводу совмещения состояний. Также, попробую сделать состояние рывка еще. Но все равно остается главный вопрос: как правильно получать то отпущена она или же нет? если проверять в апдейте, то, например, я замжу клавишу и в результате мы получим: в первом кадре она нажата, во втором кадре отпущена, потому что проверка каждый кадр будет. значит, то что я записываю в отдельную переменную, правильно? например сделаю для ПКМ: