unity代码控制音源——AudioSource

首先我们需要先获得组件

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

public class Lesson12 : MonoBehaviour
{
    private AudioSource audioSource;
    // Start is called before the first frame update
    void Start()
    {
        audioSource = GetComponent<AudioSource>();
    }
}

代码控制播放停止

播放音乐

audioSource.Play();

关掉音乐

audioSource.Stop();

暂停音乐

audioSource.Pause();

延迟播放

audioSource.PlayDelayed(5);     // 5秒后播放

停止暂停 和暂停后 play的效果一样 都会继续播放现在的音频

audioSource.UnPause();

如何检测音效播放完毕

如果你希望某一个音效播放完毕后 想要做什么事情,那就可以在Update生命周期函数中 不停的去检测 它的 该属性 如果是false就代表它播放完毕了

if (audioSource.isPlaying)
{
    print("播放中");
}
    else
{
    print("播放结束");
}

如何动态控制音效播放

提前声明好变量

1. 直接在要播放音效的对象上挂在脚本 控制播放

2.实例化挂在了音效源脚本的对象
这种方法 其实用的比较少

Instantiate(obj);

3. 用一个AudioSource来控制播放不同的音效

AudioSource aus = this.gameObject.AddComponent<AudioSource>();
aus.clip = clip;
aus.Play();

潜在知识点

一个GameObject可以挂载多个 音效源脚本AudioSource
使用时要注意 如果挂载多个 那一定要自己管理他们 控制他们的播放 停止 不然我们没办法准确的获取谁是谁。
 

猜你喜欢

转载自blog.csdn.net/m0_73113333/article/details/142881891