Version: 2017.1

Animation.CrossFadeQueued

切换到手册
public AnimationState CrossFadeQueued (string animation, float fadeLength= 0.3F, QueueMode queue= QueueMode.CompleteOthers, PlayMode mode= PlayMode.StopSameLayer);

描述

使动画在上一个动画播放完成后交叉淡入淡出。

例如,您可能会按指定的序列一个接一个地播放动画。

该动画在播放前会自我复制,因此您可以在相同动画之间淡入淡出。 这可用于覆盖两个相同动画。例如,您可能有一个挥剑的动画。 玩家在将剑挥来挥去后快速猛砍两下。 您可以将该动画倒回,从头开始播放,但之后您会看到动画有跳帧现象。

The following queue modes are available:
If queue is QueueMode.CompleteOthers this animation will only start once all other animations have stopped playing.
If queue is QueueMode.PlayNow this animation will start playing immediately on a duplicated animation state.

动画播放完毕后,将自动执行自我清理。在该动画播放完成后使用复制动画状态将导致异常。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Animation anim; void Start() { anim = GetComponent<Animation>(); } void Update() { if (Input.GetButtonDown("Fire1")) anim.CrossFadeQueued("shoot", 0.3F, QueueMode.PlayNow); } }