Richi16 писал(а):Код огромный... Вставлю только тот момент где именно это используется... Хотя я даже не понимаю что
Используется csharp
private Vector2 GetInput()
{
Vector2 input = new Vector2
{
x = CrossPlatformInputManager.GetAxis("Horizontal"),
y = CrossPlatformInputManager.GetAxis("Vertical")
};
movementSettings.UpdateDesiredTargetSpeed(input);
return input;
}
public void UpdateAnimation(float x , float y)
{
//if not crouch or jump and not stay on one place
if(Grounded_m == true && Crouch_m == false && x != 0 || y != 0)
{
otheranim.SetBool("Forward_m", true);
}
}
Код слишком простой и не вижу ничего что может вам помочь в решении...
Система x = CrossPlatformInputManager.GetAxis("Horizontal"), y = CrossPlatformInputManager.GetAxis("Vertical") используется изначально стандартно в Unity для определения перемещения по ОСИ X и Y.
Привязывать анимацию напрямую к инпуту - это так себе решение. Инпут должен скармливаться в скрипт - контроллер анимаций, который будет
плавно менять состояние анимаций от текущего к целевому.
Судя по видео проблема вообще в рассинхронизации физического контроллера и контроллера анимаций, в этом случае анимации вообще нужно привязывать к скорости физ. контроллера, а физ контроллер в свою очередь должен принимать и обрабатывать инпут.
Последний раз редактировалось
IDoNotExist 07 авг 2019, 12:39, всего редактировалось 2 раз(а).