Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Про анимации Unity 3D

Steams Steams Ученик (100), на голосовании 8 месяцев назад
Можно ли как ни будь продолжать проигрывать анимацию в паузе? В Time.timeScale = 0 ?
Голосование за лучший ответ
Беспрекословный Эксперт Мыслитель (6688) 9 месяцев назад
Да, можно продолжать проигрывать анимацию в паузе, используя свойство animation-play-state в CSS или JavaScript. Это свойство определяет, проигрывать анимацию или поставить её на паузу. При продолжении установленной на паузе анимации она начинается с того момента, где была остановлена.

В Unity 3D вы можете использовать компонент Animation для создания и управления анимациями объектов. Вы можете задавать разные параметры анимации, такие как ключевые кадры, тайминги, повторения и т.д. Вы также можете использовать компонент Animator для создания более сложных и гибких анимационных систем. С помощью Animator вы можете использовать переменные и корутины для триггеров и контролировать движение параметров.
Steams SteamsУченик (100) 9 месяцев назад
А через скрипт как?
Беспрекословный Эксперт Мыслитель (6688) Steams Steams, Через скрипт вы можете продолжать проигрывать анимацию в паузе, используя метод Animator.Update1. Этот метод позволяет вручную обновлять состояние аниматора, игнорируя значение Time.timeScale1. Вы можете вызывать этот метод в MonoBehaviour.FixedUpdate или MonoBehaviour.LateUpdate, передавая ему желаемое время в секундах1. Пример кода с использованием Animator.Update:
 using UnityEngine; 
 
public class AnimationController : MonoBehaviour 
{ 
    public Animator animator; // Ссылка на компонент Animator 
    public float animationSpeed = 1f; // Скорость анимации в секундах 
 
    private void LateUpdate() 
    { 
        // Обновляем аниматор вручную, игнорируя Time.timeScale 
        animator.Update(animationSpeed * Time.deltaTime); 
    } 
} 
 
Steams SteamsУченик (100) 9 месяцев назад
Вот мой код
if (Input.GetKeyDown(KeyCode.Mouse0))
{
anim.SetTrigger("Play");

}
Через триггер, как тут вызвать?
Беспрекословный Эксперт Мыслитель (6688) Steams Steams, Через триггер вы можете вызвать анимацию, используя метод Animator.SetTrigger2. Этот метод позволяет активировать триггер, который запускает переход к определенному состоянию анимации. Вы можете создать триггер в окне Animator Controller и назначить ему имя, например “Play”. Затем вы можете настроить переход от одного состояния анимации к другому, используя триггер в качестве условия. Пример кода с использованием Animator.SetTrigger:
 using UnityEngine; 
 
public class AnimationController : MonoBehaviour { public Animator animator; // Ссылка на компонент Animator
private void Update() 
{ 
    // Проверяем, нажата ли левая кнопка мыши 
    if (Input.GetKeyDown(KeyCode.Mouse0)) 
    { 
        // Активируем триггер "Play" 
        animator.SetTrigger("Play"); 
    } 
} 
 
Похожие вопросы