Ищете лучший способ обработки вызовов триггеров анимации в Unity с использованием дерева смешивания и создания экземплярC#

Место общения программистов C#
Ответить
Anonymous
 Ищете лучший способ обработки вызовов триггеров анимации в Unity с использованием дерева смешивания и создания экземпляр

Сообщение Anonymous »

Я работаю над 2D-игрой с боковой прокруткой, используя C# в Unity. По сути, у меня есть метод, который вызывается, когда я нажимаю триггер анимации на аниматоре, и этот метод создает экземпляр GameObject (в моем случае стрелку), к которому применяется сила. Все работает хорошо и без ошибок, за исключением того, что у меня появляются две стрелы одновременно. Я немного покопался и обнаружил, что мой метод, создающий экземпляр GameObject со стрелкой, запускается дважды из-за моего дерева смешивания, показанного здесь:
Изображение

[Как вы можете видеть, смешение двух анимаций приводит к вызову триггера из каждой из них; таким образом возникает 2 экземпляра объекта.]
[У меня есть триггеры атаки для каждой анимации «ArcherFire», потому что она должна запускать стрелу в любом из 4 положений: 30 градусов, 60 градусов, 90 градусов и 120 градусов.]
Изображение

Дерево наложения основано на положении мыши и работает достаточно хорошо:

Код: Выделить всё

public void GetArcherAngle()
{
Vector2 mouseVector = Input.mousePosition;
float mousePosition = mouseVector.y / Screen.height;

animator.SetFloat("BlendTree", mousePosition);
}
Как я уже говорил, у меня нет проблем с кодом или чем-то в этом роде. Я пробовал логические значения, но получил смешанные результаты. Особенность операторов «if» с плавающим диапазоном для положений мыши заключается в том, что они, кажется, меняются влево или вправо и выходят за пределы плавающего диапазона для этого конкретного угла лучника. Это недостаточно единообразно.
Итак, мой вопрос: как лучше всего обрабатывать переключение с одной анимации на другую в дереве смешивания без вызова триггера для обеих? Я все еще немного учусь, поэтому мне интересно кое-что, о чем, возможно, я еще не узнал.
Спасибо, что уделили время.

Подробнее здесь: https://stackoverflow.com/questions/798 ... using-a-bl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»