使用static void PlayClipAtPoint(AudioClip audioClip, Vector3position,floatvolume=1.0f)unity按钮点击音效,虽然播放的是3D音效,但是我们的功能还是可以实现的unity按钮点击音效材质材料,因为使用AudioSource.PlayClipAtPoint()来播放声音会自动生成一个声音层次面板中名为“One shot audio”的对象播放后会自动删除,但仍然存在音量低的问题。 要解决音量问题,因为PlayClipAtPoint()的音效大小与摄像机的位置有关,所以我们只需改变Main Camera的高度即可。 相机距离背景层越近,音量越大。 代码如下所示:
public AudioClip audioClip;
public float speed;
public string alphabet;
public static int score = 0;
void Start()
{
//speed = Random.Range(0.8f, 1.5f);//简单
speed = Random.Range(3f, 5f); ;//中等
}
// Update is called once per frame
void Update()
{
transform.Translate(Vector3.down * Time.deltaTime * speed);
if (Input.GetKeyDown(alphabet))
{
AudioSource.PlayClipAtPoint(audioClip, Vector3.zero, 1.0f);//播放音效
Destroy(this.gameObject);
score++;
}
if (transform.position.y < -3.5f)
{
Destroy(this.gameObject);
}
}
我给大家介绍一下播放2D音效的函数:static void PlayOneShot(AudioClip audioClip, floatvolume=1.0f),但是PlayOneShot()并不像PlayClipAtPoint()。 PlayOneShot()需要实例化一个对象才能实现3D道具,即需要绑定。 定义AudioSource组件,它让我们返回到我们没有解决上述问题的原始状态。 破坏音效是不可行的。 以下是该函数的使用规范:
public AudioClip audioClip;
public AudioSource audioSource;
audioSource.PlayOneShot(audioClip, 1.0f);//需放入函数中
文章来源:https://blog.csdn.net/m0_51942776/article/details/127718491