C# 为什么在使用动画事件向角色添加音频脚步时,只有一只脚播放声音?

C# 为什么在使用动画事件向角色添加音频脚步时,只有一只脚播放声音?,c#,unity3d,C#,Unity3d,动画师中的动画是HumanoidWalk 在底部“动画”选项卡中的动画检查器中,我单击了已单击的事件以添加事件名称,将函数命名为“步骤”,并将时间滑块移动到0.67。在角色的预览窗口中移动滑块,使右腿脚部靠近地面,然后单击“应用”: 然后我做了同样的操作,但将时间稍微改为0.7,再次调用函数Step,现在在预览窗口中调用它';使另一只脚靠近地面,然后单击“应用”: 我向层次结构中的角色添加了音频源组件和脚本名称Foot Steps: 而剧本本身: using System; using S

动画师中的动画是HumanoidWalk 在底部“动画”选项卡中的动画检查器中,我单击了已单击的事件以添加事件名称,将函数命名为“步骤”,并将时间滑块移动到0.67。在角色的预览窗口中移动滑块,使右腿脚部靠近地面,然后单击“应用”:

然后我做了同样的操作,但将时间稍微改为0.7,再次调用函数Step,现在在预览窗口中调用它';使另一只脚靠近地面,然后单击“应用”:

我向层次结构中的角色添加了音频源组件和脚本名称Foot Steps:

而剧本本身:

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

public class FootSteps : MonoBehaviour
{
    [SerializeField]
    private AudioClip[] clips;

    private AudioSource audioSource;
    private GameObject[] Foots;

    private void Awake()
    {
        audioSource = GetComponent<AudioSource>();
        Foots = GameObject.FindGameObjectsWithTag("Foot");
    }

    private void Step()
    {
        AudioClip clip = GetRandomClip();
        audioSource.PlayOneShot(clip);
    }

    private AudioClip GetRandomClip()
    {
        return clips[UnityEngine.Random.Range(0, clips.Length)];
    }
}
使用系统;
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共阶层的脚步:单一行为
{
[序列化字段]
私人音频剪辑[]剪辑;
私人音频源音频源;
私人游戏对象[]脚;
私人空间
{
audioSource=GetComponent

当运行游戏时,我用蓝色圆圈标记,只有这只脚在玩。如果我将时间更改为相同的0.67,它将玩两个声音相同,因此它将听起来像一个,或者如果时间为0.67和0.7,它将听到两个步骤,但只在左脚上

无论我更改了多少次预览动画腿,第二条腿的脚都不会播放声音

我尝试按照本教程的说明进行操作,但没有成功:

应该很简单,但只有一只脚在工作。
我想不出我遗漏了什么。

您在错误的时间戳添加了事件。请看一下“事件”时间线中的小白线。在您的第一个屏幕截图中,这条线正好超过0:33,在您的第二个屏幕截图中,这条线略右于0:83。这是您的事件应该出现的位置(而不是0:67和0:70).

您可以在网络站点上提问,您可能有准确的答案。我没有想到,当您在预览窗口中设置步骤并单击“添加事件”按钮时,它会自动添加正确的时间戳。我想我应该自己设置时间戳。这在视频教程中没有解释。很抱歉造成混乱.这是我一直在关注的视频教程:@DubiDuboni有时就是这样的’_(ツ)_/“很高兴它现在对你有用!