Существуют ли переменные текущего кадра данной анимации

Программирование на Юнити.

Существуют ли переменные текущего кадра данной анимации

Сообщение NOVA 08 дек 2011, 07:26

В связи с тем, что использую кучу анимаций с переходами иногда требуется ставить счётчик на кадры. Пробовал таймер, выходит лажа, так как fps игры непостоянен. То есть. Стоит ГГ и смотрит вправо. При нажатии "влево" должна сработать анимация "Turn" а потом поворот ГГ. Так вот надо сделать задержку во время анимации "Turn". Следовательно нужно ставить условие: Если кадр последний, то разворачиваем ГГ. Любым другим способом разворот происходит во время анимации, или анимация повторяется. Причём всё это может быть по разному в зависимости от FPS игры. Так вот вопрос. Существует ли переменная номера текущего кадра анимации? Вот код на всякий:
Синтаксис:
Используется csharp
if (stat == 1 && dir == 1)

                {       animation["Turn"].wrapMode = WrapMode.Once;

                        animation.Play("Turn");

                        timer += Time.deltaTime;

                                if (timer >= 0.4)

                           {timer = 0;

                                gameObject.transform.rotation = new Quaternion (0,180,0,0);

                                gameObject.transform.Translate(-4,0,-2);

                                dir = 0;

                                stat = 0;        

                                }

                }       ;
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение waruiyume 08 дек 2011, 08:02

AnimationState.time или можно юзать AnimationEvents
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение NOVA 08 дек 2011, 08:18

А можно по- подробнее?. Образно Имеем переменную int fn = 1; fn+=1; {проиграть анимацию с кадром fn); if fn == 15 {останавливаем анимацию, либо включаем другую}
Честно говоря "time" смущает ибо time и frame понятия не совместимые
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение Левш@ 08 дек 2011, 13:51

Честно говоря "time" смущает

А что собственно смущает, это ж не абсолютное время, это временной отрезок на шкале трека.

Если нужно именно дождаться последнего кадра, то все проще:
Синтаксис:
Используется javascript
yield WaitForSeconds(animation.clip.length);
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение NOVA 08 дек 2011, 15:14

Спасибо попробую, как ошибку устраню одну. Си шарп требует повышенной внимательности. Как раз заметил при работе с таймером, что он отношения не имеет к шкале трека, а меряет в секундах. ГГ то 2 оборота делал, то недоделовал при спадании fps. Такая же ситуация,но чуть получше с счётчиком-переменной. А разве javascript можно мешать с Си шарп?
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение Левш@ 08 дек 2011, 18:05

ГГ то 2 оборота делал, то недоделовал при спадании fps

Может в FixedUpdate перенести.

javascript можно мешать с Си шарп?

Нет. :) Но можно обращаться.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение NOVA 08 дек 2011, 18:51

Как это перенести в fixed update? Вроде наладил счётчиком переменной. Нажал maximize window и привет. FPS упало и опять по 2 оборота, крутится как юла.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение Левш@ 08 дек 2011, 19:04

Как это перенести в fixed update?

Эта функция не зависит от fps.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение NOVA 11 дек 2011, 08:58

Левш! Не очень вразумительный ответ. Скомпилировал рабочую часть и при изменении настроек качества fps скачет по-дикому, анимация глючит. Пока не увидел из всех ответов ни одного строго соответствующего вопросу. %-(
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение Левш@ 11 дек 2011, 13:19

Детский сад, ей богу... :)
*This function is called every fixed framerate frame, if the MonoBehaviour is enabled.*
Эта функция проигрываеться с постоянной частотой и никак не зависит от fps, предназначена в основном для работы физики в игре.
Синтаксис:
Используется javascript
function FixedUpdate () {

}

Синтаксис:
Используется csharp
void FixedUpdate() {

}
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение burlak 11 дек 2011, 16:07

waruiyume писал(а):AnimationState.time или можно юзать AnimationEvents


Согласен, я бы тоже использовал евенты чтобы синхронизировать gameObject с анимацией. Более гибко чем привязываться к последнему кадру.
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение NOVA 12 дек 2011, 09:20

Левш!
Я тебе: "что такое болт и куда его закручивать,"
А ты мне:"детский сад, бери на 18, у него шляпка снизу плоская и пластик не расколет".
Заработались чтоле?

КУДА ВОТКНУТЬ "fixed update"???????

Втыкал вместо void update. ГГ и шевелится не думал.

Animation event в юнити вообще не нашёл.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение Левш@ 12 дек 2011, 12:16

Заработались чтоле? КУДА ВОТКНУТЬ "fixed update"???????

Та не. скорее обленились в доску. :))
Для кого это написано (ScriptReference) ?
http://unity3d.com/support/documentatio ... pdate.html
Синтаксис:
Используется csharp
void FixedUpdate() {
    // действия
}
Последний раз редактировалось Левш@ 12 дек 2011, 13:38, всего редактировалось 2 раз(а).
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение seaman 12 дек 2011, 13:31

Animation event в юнити вообще не нашёл.

Одно из двух: или просто не искал, или искать совершенно не умеешь.
AnimationEvent
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Существуют ли переменные текущего кадра данной анимации

Сообщение NOVA 20 дек 2011, 00:19

Спасибо Левш. Фиксед Апдейт строго работает. Однако чем дальше в лес тем больше дров;) (3A4OT)
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

След.

Вернуться в Скрипты

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

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