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,.