Страница 1 из 1

Как остановить анимацию?[Решено]

СообщениеДобавлено: 23 июн 2011, 10:08
osmansab
Есть анимация падения на спину игрока. Как сделать так, чтобы он оставался в лежачем положении? Я использовал
Синтаксис:
Используется csharp
animation.Stop(deathAnimation.name)
, не помогло анимация возвращается в начальную позицию. Если после проигрыша анимации в инспекторе отключить Animation, то все нормально, но если компонент отключаю программно
Синтаксис:
Используется csharp
_myTransform.GetComponent<Animation>().enabled = false
персонаж проваливается.

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 12:27
DanielDem
попрубуй Animation["имя_анимациооного_липа"].enabled = false;

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 13:30
Order
Можно сделать анимацию лежачего к примеру.. может даже полезнее будет.

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 13:36
Левш@
не нужно останавливать, пропиши последний кадр падения как отдельную анимацию deathIdle и зацикли.

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 22:26
osmansab
Проигрывание анимации лежание не совсем подходит, я хотел использовать остановку еще и для таких эффектов как заморозка. А использование
Синтаксис:
Используется csharp
Animation[_myTransform.name].enabled = false
выдает ошибку. Может кто знает, почему если в инспекторе после проигрывания анимации компонент Animation отключить все нормально, а если тоже самое сделать программно персонаж проваливается, причем как то странно он прикрепляется с обратной стороны пола.

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 22:31
seaman
Почему в первом посте Ваша анимация имеет такое имя: deathAnimation.name
а в последнем такое: _myTransform.name

Судя по всему в последнем варианте Вы пытаетесь остановить анимацию с именем объекта...

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 22:49
osmansab
В первом посте deathAnimation.name - имя проигрываемой анимации, а в последнем по рекомендации
Сообщение DanielDem
попрубуй Animation["имя_анимационого_лица"].enabled = false;
_myTransform.name - сам анимированный персонаж. Я так думаю, что
Синтаксис:
Используется csharp
Animation[_myTransform.name].enabled = false
отключает всю анимацию.

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 22:53
seaman
А думать иногда вредно. Лучше прочитать мануал
Animation["имя_анимации] - http://unity3d.com/support/documentation/ScriptReference/Animation.Index_operator.html

ЗЫ: а у него несколько не так, как Вы процитировали написано. Не "_лица", а "_липа". Явно он пропустил букву "к" - "_клипа"

ЗЗЫ: не понимаю - столько народу здесь принципиально не желает читать мануалы. Почему?

Re: Как остановить анимацию?

СообщениеДобавлено: 23 июн 2011, 23:01
osmansab
Да, действительно сглупил.

Re: Как остановить анимацию?

СообщениеДобавлено: 24 июн 2011, 01:52
osmansab
Все всем спасибо я нашел как сделать. Кому интересно предоставляю код
Синтаксис:
Используется csharp
        private IEnumerator Death(){
                animation.wrapMode = WrapMode.Once;
                animation.Play(deathAnimation.name);
                yield return new WaitForSeconds(animation[deathAnimation.name].length -  1.5f);
        }
затем после вызова
Синтаксис:
Используется csharp
_myTransform.GetComponent<Animation>().enabled = false;
[V]

Re: Как остановить анимацию?

СообщениеДобавлено: 24 июн 2011, 01:57
Neodrop
Добавьте в название темы [Решено]
(путём редактирования первого сообщения)