Как вызвать анимацию при входе в триггер?

При просмотре многих уроков сложилось впечатление, что они для устаревшей версии Юнити. Подскажите пожалуйста алгоритм настройки анимации и вызова ее через скрипт в версии 4.х
 
имеется примерный скрипт
C#
 
using UnityEngine;
using System.Collections;
 
public class Moving : MonoBehaviour {
Animator anim;
 
void Start () {
 
anim = GetComponent<Animator>();
}
 
void OnTriggerEnter () {
 
anim.SetBool ("MyAnim", true);
}
}
Комментарии
  • Administrator
    Скрипт правильный, но одно но у вас 2д триггеры или обычные ?
    Т.к. для 2д используется OnTriggerEnter2D
    - Проверьте еще раз установлен ли флаг Trigger на коллайдере
    - Добавьте в функцию OnTriggerEnter, дебаг
    C#
    Debug.Log("Object on Trigger");
     
    Если выводится дебаг, значит проблема с запуском самой анимации.
    2014-07-13 14:34:32 | Комментировать
  • Дмитрий Демидов
    Триггеры у меня 3D.
    Выводится дебаг "Object on Trigger".
     
    Сам скрипт нужно применять к отдельному триггеру или анимированному объекту с созданным на нем триггером?
    Не могли бы вы мне пошагово объяснить весь алгоритм настройки триггера и анимации с того момента, как я создал ее в окне "Animation"?
    2014-07-14 07:02:13 | Комментировать
  • Administrator
    Да, Анимация и Триггер должны быть на одном обьекте.
    Аниматор вы получаете через:
    anim = GetComponent<Animator>();

    Если хотите получить аниматор с другого геймОбьекта, уберите эту строчку в старте.
    А в инспекторе назначте нужный аниматор, заранее сделав переменную аним публичной.
     
    public Animator anim;
    2014-07-14 16:59:39 | Комментировать
  • Дмитрий Демидов
    А как вот настроить правильно саму анимацию, после ее создания в Unity? Еще до написания скрипта...
    2014-07-15 08:01:42 | Комментировать
  • Administrator
    Есть два способа:
    - Через Animator - Для персонажей и сложных моделей со скелетом.
    - Через  Animation - Для моделей простых анимаций без скелетов.
     
    В первом случае ищите видео уроки..
     
    Во втором всё просто, снача добавляем компонент Animation через Menu->Component->Miscellanous -> Animation
     

     
    И как на рисунке ниже... Вызываем редактор анимаций, создаём анимацию... и под цифрой 3 список анимаций которые есть на обьекте. И по команде
    C#
    animation.Play("имя анимации"); //вызывается анимация.

    2014-07-15 21:03:04 | Комментировать
  • Дмитрий Демидов
    странно... все сделал, как вы написали, но при входе в триггер, ничего не происходит - даже нет никаких сообщений.
    2014-07-16 07:19:01 | Комментировать
  • Дмитрий Демидов
    Все работает. Спасибо! =)
    2014-07-19 18:14:33 | Комментировать