【问题标题】:Why when trying to play animation clip nothing happen?为什么尝试播放动画剪辑时没有任何反应?
【发布时间】:2017-05-07 05:33:03
【问题描述】:

我想要的是在运行游戏时动画剪辑会自动开始播放。

我向主摄像机添加了一个动画组件。 在 Inspector 中向动画添加了剪辑文件名 Camera_Sign003,还将动画大小设置为 1,并在其中添加了相同的剪辑 Camera_Sign003。 我也设置为 true 自动播放。

我还在主摄像机上附加了一个脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraPoints : MonoBehaviour
{
    public Animation anim;
    IEnumerator Start()
    {
        anim = GetComponent<Animation>();
        anim.Play(anim.clip.name);
        yield return new WaitForSeconds(anim.clip.length);
    }
}

我检查了一个断点,它到达了 anim.Play.... 长度为 10,但 10 秒后没有任何反应。

动画是一个将相机从一个点移动到另一个点的短片。

主相机是 ThirdPersonController 下的子相机。

【问题讨论】:

    标签: c# unity3d unity5


    【解决方案1】:

    Animation 组件是旧组件,除非您需要支持旧工具或项目,否则不应使用。

    你真正需要的是一个 Animator 组件和一个 Animation Controller 对象。最简单的设置方法是选择您要设置动画的对象(例如主摄像机),打开“动画”窗口,然后单击此处的“创建”按钮。

    创建的新动画默认会自动播放并循环播放。 更多信息可以在这里找到:Unity - Manual: Creating a New Animation Clip

    【讨论】:

    • 好的,我现在创建了新的动画剪辑。从主摄像机中移除了动画组件。在 Animator 组件中,我将主摄像机添加为 Controller。我现在不使用脚本。在 Animator 窗口中运行游戏时,我看到动画剪辑状态,我看到它就像在玩它,我看到里面的蓝色条正在运行。但实际上在游戏窗口中我没有看到录制的剪辑。我没有收到任何错误或警告。
    • 然后,我添加了新的空游戏对象,将 Inspector 中的 Animator 组件添加到了 Animator 组件中,我添加了 Main Camera 作为控制器。然后打开动画窗口创建新的动画剪辑。运行游戏时,我在 Animator 窗口中看到它正在播放剪辑,但没有在游戏视图中显示。
    • 奇怪。如果它看起来像是在播放,那么也许它没有播放正确的动画?尝试使用“Animator”窗口查看动画控制器并选择“Entry”状态指向的动画状态。这应该包含您要播放的动画剪辑。有关详细信息,请参阅docs.unity3d.com/Manual/AnimationOverview.html
    • 好的,我发现了问题。不知道为什么,但问题是主相机是 ThirdPersonController 的孩子。一旦我将相机移到顶部,它就可以正常工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2022-10-20
    • 2022-01-23
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    相关资源
    最近更新 更多