【问题标题】:How do i play animation walk for the character?我如何为角色播放动画行走?
【发布时间】:2016-10-27 04:36:50
【问题描述】:

我正在使用导航网格代理通过鼠标单击按钮移动角色。 我点击了烘焙,它正在移动播放器。

现在我想在角色移动时为其添加动画行走。 所以我添加到我的角色 ThirdPersonController 组件动画并在动画检查器中我将动画属性设置为 HumandoidWalk。

但是当运行游戏并用鼠标点击时,没有动画行走。

这是异常消息:

动画状态Walk无法播放,因为找不到! 请附加一个名为“Walk”的动画剪辑,或仅为现有动画调用此函数。 UnityEngine.Animation:播放(字符串) ClickToMove:Update()(在 Assets/MyScripts/ClickToMove.cs:21)

这是右侧角色检查器的屏幕截图,显示了 Nav Mesh Agent 和 Animator Components 以及附加的脚本 Click To Move:

Screenshot

这就是脚本。我第一次尝试制作 _anim.Play("Walk");但我得到了执行,因为他找不到 Walk。

所以我只尝试了 _anim.Play();因为我将 HumanoidWalk 添加为动画,但现在我没有收到任何异常,但没有行走动画。

using UnityEngine;
using System.Collections;

public class ClickToMove : MonoBehaviour
{
    NavMeshAgent agent;
    Animation _anim;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        _anim = GetComponent<Animation>();
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            _anim.Play("Walk");
            RaycastHit hit;

            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100))
            {
                agent.destination = hit.point;
            }
        }
    }
}

【问题讨论】:

标签: c# unity3d


【解决方案1】:

创建一个动画剪辑变量并将动画拖到检查器中。然后尝试通过将动画设置为剪辑 _anim.clip = clipVariable 来播放动画,然后仅使用 _anim.Play() 。此外,您应该使用更好的 Animator 组件,而不是动画组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    相关资源
    最近更新 更多