Анимация 2 слоя

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Анимация 2 слоя

Сообщение Tasimov 10 мар 2012, 13:50

Здраствуйте!!!
Возник один вопрос, буду благодарен за помощь.
Есть анимация например удара мечом, я разбил на 2:
1) Перс замахивается мечом ( 1 - 15 кадр)
2) Перс завершает удар мечом ( 15 - 20 кадр)

Как реализовать так, что бы при нажатии и удерживании кнопки Mouse1 проигрывалась анимация с первым слоём и останавливалась на последнем кадре тоесть на 15 и дальше не проигрывалась повторно. А когда отпустил Mouse1 то проигрался 2 слой тоесть с 15 по 20 кадр.

Вот код, который проигрывает анимацию с 1 по 15 кадр, но зацикленно почемуто

Синтаксис:
Используется javascript
function Update ()
{
if (Input.GetButton ("Fire3"))
animation.Play("Udar3");
animation["Udar3"].speed = 0.4;
}


function PlayAnimation ()
{
  animation.Play("Udar3");
  yield WaitForSeconds (5);
 

}


Изображение
Tasimov
UNец
 
Сообщения: 48
Зарегистрирован: 24 сен 2011, 14:19

Re: Анимация 2 слоя

Сообщение artk 10 мар 2012, 15:02

Input.GetButtonDown, Input.GetButtonUp
X(
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: Анимация 2 слоя

Сообщение Tasimov 10 мар 2012, 15:09

Вот именно что через GetButtonUp и Down пробывал, когда нажимаю на соответствующую кнопку то проигрывается 2-3 кадра анимации и все...незнаю почему....
Tasimov
UNец
 
Сообщения: 48
Зарегистрирован: 24 сен 2011, 14:19

Re: Анимация 2 слоя

Сообщение AndreyMust19 10 мар 2012, 15:22

Это называется не слои, а фрагменты. Слои - это animation["имя"].layer.

Вот код, который проигрывает анимацию с 1 по 15 кадр, но зацикленно почемуто

Возможно вы поставили по окончанию анимации воспроизводить ее сначала. Убедитесь что wrapMode у клипа анимации или в скрипте равно WrapMode.Once.
Input.GetButton возвращает истину если удерживается кнопка. Поэтому animation["Udar3"].Play() выполнится несколько раз подряд. Запускайте анимацию только по нажатию.

Минимум что вам нужно:
Синтаксис:
Используется csharp
if (Input.GetButtonDown("Fire3")) animation.Play("Udar3");
if (Input.GetButtonUp("Fire3")) animation.Play("Udar3_2");
 

Но здесь нет проверки что Udar3 воспроизвелась до конца и игрок не отпустил кнопку раньше времени.

И покажите весь код.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 26