Просто мне нужно добавить к существующему AnimationClip его зеркальный кусок (который начинается не сначала, а с 5 секунды). Если в настройках импорта fbx персонажа во вкладке Animations - Root motion node установлен Root transform, то перс будет прыгать в позицию импортированной анимации на 5 секунде, чего не должно быть - в этот момент в скрипте нужно вызвать трансформацию
Используется csharp
transform.position = new Vector3(transform.position.x + shiftX, transform.position.y, transform.position.z);.
Можно вообще без transition обойтись и не связывать AnimationState в визуальном окне Animator например так
Используется csharp
private Animator an;float currentTime;
// Update is called once per frame
void Update() {
currentTime = an.GetCurrentAnimatorStateInfo(0).normalizedTime;
if (currentTimen >= 1){ an.Play("from6to26", 0, 0.2f);
transform.position = new Vector3(transform.position.x + shiftX, transform.position.y, transform.position.z);
}
Тогда работает корректно, а если с транзишн то при переходе все равно прыгает, то есть пока идет переход от текущего состояния к следующему, an.GetCurrentAnimatorStateInfo(0).IsName("from6to26") равен текущему состоянию ("from1to26") а не следующему, следующему он станет равен после завершения перехода транзишн. Не понятно, если в свойствах состояния есть exitTime который принадлежит классу AnimatorStateTransition, то почему его нельзя получить из класса Animator? Как тогда получить в коде AnimatorStateTransition, нужно отказаться от визуального Animator и полностью все создавать (включая AnimatorController ) в скрипте?