Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста анимация должна работать до тех пор пока я не нажму на кнопку 2 раз

Антон Куликов Ученик (110), на голосовании 3 года назад
Персонаж умеет прыгать ходить если ничего не делаю то переходит в состояние покоя есть анимация где он поднимает руку с оружием мне нужно когда я нажимаю на кнопку работала анимация с оружием но до тех пор пока я не нажму на кнопку 2 раз
Голосование за лучший ответ
вайцы фафцуа Гуру (3636) 3 года назад
добавь счётчик и соответствующее условие для прекращения анимации.
Антон Куликов Ученик (110) 3 года назад
с помощью цикла ?
вайцы фафцуа Гуру (3636) Антон Куликов, нет. Просто переменная, в которой вносится количество нажатий при нажатии на кнопку. Я не разбираюсь в c#. Может можно сделать проще. Например, если ты имеешь ввиду двойное нажатие мышью (именно мышью), то возможно есть событие типа doubleClick. И тогда когда это событие происходит можно прекращать анимацию. Читай что такое events
FF Мыслитель (5785) 3 года назад
Если нужна фиксация двойного нажатия в пределах некоторого интервала времени - нет ничего проще, чем использовать функции из библиотеки UniRx.
Так выглядит стандартная реализация двойного клика мышью в них:
---
Observable.EveryUpdate().Where(_ => Input.GetMouseButtonDown(0))
.Buffer(TimeSpan.FromMilliseconds(250), 2)
.Where(buffer => buffer.Count >= 2)
.Subscribe(_ => Debug.Log("DoubleClicked!"));
Антон Куликов Ученик (110) 3 года назад
Спасибо вам но можно ли сделать чтобы не было интервалов времени то есть навсегда анимация проигрывалась до повторного нажатия кнопки
FF Мыслитель (5785) Антон Куликов, самое простое Rx-решение здесь: заводим счётчик нажатий: --- ReactiveProperty< int > count = new ReactiveProperty< int > (0); --- count.ObserveEveryValueChanged (x => x.Value) // отслеживаем изменения в нем .Subscribe (xs => { // подписываемся if (xs >= 2) Foo(); // проверяем что достиг двух, и если так, то вызываем Foo() }).AddTo (this);
Похожие вопросы