Смешать деревья плохо в 2d - PullRequest
0 голосов
/ 06 января 2020

Мой проект Isometri c 2d с 8 анимациями направленного движения.

Как вы все знаете, смешанные деревья отлично подходят для смешивания анимации в 3d. Это также работает в 2d (визуальный аспект), но "под капотом" у меня много проблем. Мне нравится привязывать анимационные события к различным функциям. Но они запускаются более одного раза, потому что 2 или 3 анимации воспроизводятся одновременно в моем дереве смешивания (хотя отображается только доминирующее), если я двигаюсь не в прямом направлении. Другими словами, если мои оси x и y не равны 1 или -1.

, я нашел обходной путь, который проверяет, какой вес анимации>> 0,5f, но это не работает при всех обстоятельствах и я не знаю почему, и мне бы очень хотелось узнать, есть ли лучшие способы обойти эту проблему.

Эта проблема присутствует только в символе Врага, потому что оси x и y не всегда равны целое число, так как оно изменяет x и y в зависимости от направления на игрока. Плеер, с другой стороны, отлично работает с клавиатурой, но не с джойстиком по той же причине.

Могу ли я как-то "зажать" значение, чтобы оно стало целым числом вектора.x и vector.y быть строго 1 или -1 в этой ситуации? Это очень помогло бы с событиями анимации и с ситуацией смешанного дерева.

Пока просто делать это:

direction = (target.position - transform.position).normalized;
anim.SetFloat("Horizontal", direction.x);
anim.SetFloat("Vertical", direction.y);

Тогда я попробовал это, но это не работает:

direction = (target.position - transform.position).normalized;
anim.SetFloat("Horizontal", Mathf.Clamp(direction.x, -1, 1));
anim.SetFloat("Vertical", Mathf.Clamp(direction.y, -1, 1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...