Animator中的动画是HumanoidWalk 在底部的“动画”选项卡中的动画检查器中,我单击了“事件”,单击以添加事件名称,该函数的功能为“步进”,并将时间滑块移动到0.67,在角色的预览窗口中移动了滑块,因此右脚靠近地面并单击“应用”:
然后我做同样的事情,但是将时间几乎改变为0.7,再次调用功能Step,现在在预览窗口中,另一只脚靠近地面并单击Apply:
我向层次结构中的角色添加了音频源组件和脚本名称“脚步”:
脚本本身:
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)];
}
}
在Clips脚本的层次结构中,我只为测试添加了相同的8个音频剪辑,所以我只能添加1个,没关系:
在运行游戏时,我用蓝色圆圈标记,只有此脚会发出脚步声音。如果我将时间更改为相同的0.67,它将播放两个相同的声音,因此听起来像是一个声音;或者,如果时间是0.67和0.7,则将听到两步,但只在左腿脚上。
无论我更改预览动画支脚多少次,第二支脚都永远不会播放声音。
我试图按照本教程的说明进行操作,但没有成功:
Adding Footstep Sounds to your Unity game with Animation Events
应该很简单,但是只有一只脚在工作。 我不知道我在想什么。
答案 0 :(得分:1)
您要在错误的时间戳记上添加事件。看一下“事件”时间轴中的小白线。在您的第一个屏幕截图中,该行位于0:33之后,而在您的第二个屏幕截图中,该行位于0:83之后。那应该是您的活动所在(不是0:67和0:70)。