Проблема с кодом Анимации

Общие вопросы о Unity3D

Проблема с кодом Анимации

Сообщение alexwild 18 мар 2010, 19:21

Добрый день ,
Имею персонажа, и к нему анимацию , сделал движение персонажа а теперь стараюсь прикрутить анимацию
Пытаюсь использовать этот код

но почему то лиш происходит анимация по горизонтали а по вертикали не как не хочет :( нуждаюсь в вашей помощи
Код: Выделить всё
function Update () {


  if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.2)
      animation.CrossFade("Forward");

   else
      animation.CrossFade("Idle");
    
    
  if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.2)
      animation.CrossFade("Forward");

   else
      animation.CrossFade("Idle");
    





}
Аватара пользователя
alexwild
UNIт
 
Сообщения: 82
Зарегистрирован: 13 янв 2010, 20:08

Re: Проблема с кодом Анимации

Сообщение Paul Siberdt 18 мар 2010, 19:31

Мож что с назначенным контроллером? Замените инпут с мышки на клавиатуру, проверьте для начала.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Проблема с кодом Анимации

Сообщение alexwild 18 мар 2010, 20:09

Движение происходит а вот анимация не играет, стоит удалить горизонтальный код и анимация вертикали начинает проигрываться, странно

Также если удалить этот код
else
animation.CrossFade("Idle");

То 2 анимации играют и горизонталь и вертикаль но нету анимация Idle
Аватара пользователя
alexwild
UNIт
 
Сообщения: 82
Зарегистрирован: 13 янв 2010, 20:08

Re: Проблема с кодом Анимации

Сообщение alexwild 18 мар 2010, 23:19

Блин , помагите
Аватара пользователя
alexwild
UNIт
 
Сообщения: 82
Зарегистрирован: 13 янв 2010, 20:08

Re: Проблема с кодом Анимации

Сообщение Serge 19 мар 2010, 04:08

Вероятнее всего ошибка в анимации персонажа, не имея таковой помочь Вам не возможно. Сделайте тестовый пример и выложите на форуме.
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Проблема с кодом Анимации

Сообщение MetosFate 19 мар 2010, 14:59

Логично, что если убрать Idle из кода, он не будет проигрываться, но непонятно почему в первом варианте не играет по вертикали, расскажите подрбнее о том как делаете само передвижение персонажа.
а пока исходя из того, что вы написали предлагаю попробовать:
Синтаксис:
Используется javascript
function Start()
{
     animation["Forward"].wrapMode=WrapMode.Loop;
     animation["Idle"].wrapMode=WrapMode.Loop;
     animation.Stop();
   //Вышеписанное для чистоты эксперимента)
}

function Update () {
     animation.CrossFade("Idle");

     if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.2)
      animation.CrossFade("Forward");

     if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.2)
      animation.CrossFade("Forward");

}
 
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Проблема с кодом Анимации

Сообщение MetosFate 19 мар 2010, 15:05

А такжепри этом Edit->Project Settings->Input настройки должны быть такими
addjpg.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Проблема с кодом Анимации

Сообщение Multirezonator 19 мар 2010, 17:38

Думаю стоило делать так :
Синтаксис:
Используется javascript
function Update () {
   if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.2)
      animation.CrossFade("Forward");

   else if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.2)
      animation.CrossFade("Forward");

   else animation.CrossFade("Idle");
 
Скрытый текст:



Аватара пользователя
Multirezonator
UNITрон
 
Сообщения: 248
Зарегистрирован: 15 фев 2010, 16:12
Откуда: Украина, Луганск
  • Сайт

Re: Проблема с кодом Анимации

Сообщение Multirezonator 19 мар 2010, 17:43

И использовать разные анимации, вместо того чтобы использовать "forward" в обоих случаях
Скрытый текст:



Аватара пользователя
Multirezonator
UNITрон
 
Сообщения: 248
Зарегистрирован: 15 фев 2010, 16:12
Откуда: Украина, Луганск
  • Сайт

Re: Проблема с кодом Анимации

Сообщение alexwild 19 мар 2010, 21:34

Multirezonator писал(а):Думаю стоило делать так :
Синтаксис:
Используется javascript
function Update () {
   if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.2)
      animation.CrossFade("Forward");

   else if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.2)
      animation.CrossFade("Forward");

   else animation.CrossFade("Idle");
 


Благодарю работает

а как теперь добавить ещё чтоб работал ??


if (Input.GetButtonDown ("Fire1"))
animation.CrossFade("Attack");
Аватара пользователя
alexwild
UNIт
 
Сообщения: 82
Зарегистрирован: 13 янв 2010, 20:08

Re: Проблема с кодом Анимации

Сообщение alexwild 19 мар 2010, 21:51

MetosFate писал(а):Логично, что если убрать Idle из кода, он не будет проигрываться, но непонятно почему в первом варианте не играет по вертикали, расскажите подрбнее о том как делаете само передвижение персонажа.
а пока исходя из того, что вы написали предлагаю попробовать:
Синтаксис:
Используется javascript
function Start()
{
     animation["Forward"].wrapMode=WrapMode.Loop;
     animation["Idle"].wrapMode=WrapMode.Loop;
     animation.Stop();
   //Вышеписанное для чистоты эксперимента)
}

function Update () {
     animation.CrossFade("Idle");

     if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.2)
      animation.CrossFade("Forward");

     if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.2)
      animation.CrossFade("Forward");

}
 


Благодорю ваш код тоже рабочий, но как я добавляю

if (Mathf.Abs(Input.GetAxis("Fire1")) > 0.2)
animation.CrossFade("Attack");

чтоб анимация удара проигралась нужно задерживать кнопку, как исправитЬ?
Аватара пользователя
alexwild
UNIт
 
Сообщения: 82
Зарегистрирован: 13 янв 2010, 20:08

Re: Проблема с кодом Анимации

Сообщение MetosFate 19 мар 2010, 23:16

Исправить так:
Синтаксис:
Используется javascript
if (Input.GetButtonDown ("Fire1")) {
animation.CrossFade("Attack");
}
 

Или так:
Синтаксис:
Используется javascript
if (Input.GetButtonDown ("Fire1")) {
animation.Play("Attack",PlayMode.StopAll);
}
 
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Проблема с кодом Анимации

Сообщение alexwild 20 мар 2010, 10:55

не 1 и не 2 код не работают
Аватара пользователя
alexwild
UNIт
 
Сообщения: 82
Зарегистрирован: 13 янв 2010, 20:08

Re: Проблема с кодом Анимации

Сообщение MetosFate 20 мар 2010, 11:41

Тогда нужно либо покопаться во вкладке Input (ваша кнопка, которую вы нажимаете должна быть прописана в поле Positive Button) и использовать те коды, которые я выше написал (у меня они работают), или использовать такие коды:
в первом нужно нажимать на левую кнопку мыши:
Синтаксис:
Используется javascript
if (Input.GetMouseButtonDown(0)){
animation.Play("Attack",PlayMode.StopAll);//либо animation.CrossFade("Attack");
}
 

во втором пробел:
Синтаксис:
Используется javascript
 if (Input.GetKeyDown (KeyCode.Space)){
 animation.Play("Attack",PlayMode.StopAll);//либо animation.CrossFade("Attack");
}
 
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Проблема с кодом Анимации

Сообщение alexwild 20 мар 2010, 14:03

я неправильно выразился, верней работает но все ровно, нужно задерживать кнопку чтоб анимация атаки проигралась до конца или быстро тыкать
Аватара пользователя
alexwild
UNIт
 
Сообщения: 82
Зарегистрирован: 13 янв 2010, 20:08

След.

Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11