1

我正在尝试统一播放两个动画(每个动画都是主摄像机的两条独立路径),根据我的研究,我认为我需要使用以下内容:

    // Update is called once per frame
void Update () {

    animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
    animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);

}

但是,将此代码附加到我的相机后,我的游戏仍然只播放第一条路径。我创建了路径,以便不同路径之间应该有半秒的延迟。我的相机的动画组件中有两个动画(见附图),我很困惑为什么这不起作用。

我错过了什么吗?

在此处输入图像描述

4

1 回答 1

3

如 user2025312 所述,您每帧都调用代码。这意味着您告诉它的每一帧立即播放第一个动画,然后将第二个动画排队。那是行不通的。

根据你想要做什么,你有几个选择。假设您想连续循环播放两个动画。你可以做的是:

void Update () {
    if (!animation.isPlaying)
    {
        animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
        animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);
    }
}

应该很容易理解,它检查是否有一个动画正在播放,如果没有,它将两个排队,立即播放第一个。这将在Update().

但是,如果您希望只播放一次动画序列(或在触发器上),请将两条线放置在其中Start()或您选择的方法中。

void Start () {
    animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
    animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);
}

那应该工作得很好。如果不是,请验证您的动画是否单独运行。

于 2013-08-02T19:23:59.097 回答