Unity 6.3
0 онлайн 69 гостей 3 в системе
Вход

Animation.CrossFade

Declaration

public void CrossFade(string animation, float fadeLength = 0.3F, PlayMode mode = PlayMode.StopSameLayer);

Параметры

Параметр Описание
анимация Имя анимации в компоненте Animation, к которой будет осуществляться переход.
fadeLength Продолжительность crossfade в секундах. Отрицательные значения закрепляются на 0 секунд.
режим Поведение слоя при переходе. Это определяет, будет ли переход с анимацией на всех слоях или с анимацией на одном и том же слое позже, чем animation.

Описание

Затемнение в анимации с именем animation в течение периода времени, определенного fadeLength.

Если режим установлен на PlayMode.StopSameLayer, анимации на том же слое, как animation исчезают, а animation если режим установлен на PlayMode.StopAll, все анимации выпадают, пока animation исчезает.

Если анимация не настроена на повторение, она будет остановлена и перематана после проигрывания.

В следующем примере показано, как переключаться между двумя анимациями с помощью CrossFade метод.

using UnityEngine;

[RequireComponent(typeof(Animation))]
public class AnimationCrossFadeExample : MonoBehaviour
{
    public bool IsRunning = false;
    Animation m_Animation;

    void Start()
    {
        m_Animation = GetComponent<Animation>();

        if (m_Animation.GetClip("walk") == null)
            Debug.LogError("Missing walk clip");

        if (m_Animation.GetClip("run") == null)
            Debug.LogError("Missing run clip");

        m_Animation.Play("walk");
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            IsRunning = !IsRunning;
            m_Animation.CrossFade(IsRunning ? "run" : "walk", .5f);
        }
    }
}

Дополнительные ресурсы: ,Animation.Play,, ,PlayMode,.