Unity常用音频操作类

复制代码
using UnityEngine;
using System.Collections;
 
public class AudioPlay : MonoBehaviour {
    public static AudioPlay Instance;
    public AudioClip[] FuChuAudio;
    public AudioSource FCAudio;
   // public AudioSource BabyAudio;
    // Use this for initialization
    void Awake()
    {
        Instance = this;
    }
 
    void Start () {    
    }
    
    // Update is called once per frame
    void Update () {    
    }
    /// <summary>
    /// 播放某个音频
    /// </summary>
    /// <param name="i"></param>
    public void playAudio(int i)
    {
        FCAudio.clip = FuChuAudio[i];
        FCAudio.Play();
    }
    /// <summary>
    /// 停止播放所有的音频
    /// </summary>
    public void StopplayAll()
    {
    
        for (int i= 0; i< FuChuAudio.Length; i++)
        {
            FCAudio.clip = FuChuAudio[i];
            FCAudio.Stop();
        }      
    }
    /// <summary>
    /// 停止播放某个音频
    /// </summary>
    /// <param name="i"></param>
    public void StopplayOne(int i)
    {
        FCAudio.clip = FuChuAudio[i];
        FCAudio.Stop();
    }
 
    /// <summary>
    /// 循环播放某个音频
    /// </summary>
    /// <param name="i"></param>
    public void playLoop(int i)
    {
        FCAudio.clip = FuChuAudio[i];
        FCAudio.loop = true;//设置声音为循环播放 ;
        FCAudio.Play();
    }
}
————————————————
版权声明:本文为CSDN博主「记录成长分享」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lrh15980692010/article/details/76570423
复制代码
复制代码
/**
*将这个脚本挂载到一个空物体上,并且给它添加 AudioSource 组件
*/
using
System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 控制所有音乐的管理类 /// </summary> public class AudioManager : MonoBehaviour { //将要轮流播放的音乐组 public AudioClip[] audioGroup; //当前播放的是谁 private int playingIndex; //是否允许播放音乐 private bool canPlayAudio; //AudioSource组件 private AudioSource audioSource; //----------------------------------------------------- void Start() { audioSource = this.GetComponent<AudioSource>(); canPlayAudio = true; playingIndex = 0; } //----------------------------------------------------- void Update() { if (canPlayAudio) { PlayAudio(); canPlayAudio = false; } if (!audioSource.isPlaying) { playingIndex++; if (playingIndex >= audioGroup.Length) { playingIndex = 0; } canPlayAudio = true; } } //----------------------------------------------------- private void PlayAudio() { audioSource.clip = audioGroup[playingIndex]; audioSource.Play(); } //----------------------------------------------------- } ———————————————— 版权声明:本文为CSDN博主「哟呵呵和」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/m0_37250299/article/details/79072361
复制代码

 

posted @   ꧁执笔小白꧂  阅读(103)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示