Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio 如何根据我行走的内容检测不同的声音。2D游戏_Audio_2d_Terrain - Fatal编程技术网

Audio 如何根据我行走的内容检测不同的声音。2D游戏

Audio 如何根据我行走的内容检测不同的声音。2D游戏,audio,2d,terrain,Audio,2d,Terrain,我真的不擅长编码,我知道基本知识,但我希望有人能帮助我编写一个脚本,它能检测我在哪个地形上行走并发出不同的声音。在互联网上有一些教程,但它们是3D游戏,我的是2D游戏,所以它是不同的。你能帮帮我吗?我会将足迹声音放在一个“包装器”方法中,在该方法中包括指示当前地形和移动方式的参数/值,如果它们重要的话 例如: playFootstep("grass", "jumping") 或: 然后,在此方法中,根据参数选择要播放的声音文件,并播放它 当前如何播放足迹

我真的不擅长编码,我知道基本知识,但我希望有人能帮助我编写一个脚本,它能检测我在哪个地形上行走并发出不同的声音。在互联网上有一些教程,但它们是3D游戏,我的是2D游戏,所以它是不同的。你能帮帮我吗?

我会将足迹声音放在一个“包装器”方法中,在该方法中包括指示当前地形和移动方式的参数/值,如果它们重要的话

例如:

playFootstep("grass", "jumping")
或:

然后,在此方法中,根据参数选择要播放的声音文件,并播放它


当前如何播放足迹?

以下是我的足迹代码:

using UnityEngine;

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

    private AudioSource audioSource;

    private void Awake()
    {
        audioSource = GetComponent<AudioSource>();
    }

    private void Step()
    {
        AudioClip clip = GetRandomClip();
        audioSource.PlayOneShot(clip);
    }
    private AudioClip GetRandomClip()
    {
        return clips[UnityEngine.Random.Range(0, clips.Length)];
    }
}
使用UnityEngine;
公共阶层的脚步:单一行为
{
[序列化字段]
私人音频剪辑[]剪辑;
私人音频源音频源;
私人空间
{
audioSource=GetComponent();
}
私有无效步骤()
{
AudioClip clip=GetRandomClip();
音频源:PlayOneShot(剪辑);
}
私人音频剪辑GetRandomClip()
{
返回剪辑[UnityEngine.Random.Range(0,剪辑.长度)];
}
}

恐怕我们不能,除非你展示一些尝试……我有一个脚步声代码,但我不知道如何自己检测地形,我可以向你展示脚步声代码
using UnityEngine;

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

    private AudioSource audioSource;

    private void Awake()
    {
        audioSource = GetComponent<AudioSource>();
    }

    private void Step()
    {
        AudioClip clip = GetRandomClip();
        audioSource.PlayOneShot(clip);
    }
    private AudioClip GetRandomClip()
    {
        return clips[UnityEngine.Random.Range(0, clips.Length)];
    }
}