Unity常用音频操作类示例代码

下面通过代码给大家介绍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();
    }
}
/***将这个脚本挂载到一个空物体上,并且给它添加 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();
    }

    //-----------------------------------------------------
}

到此这篇关于Unity常用音频操作类示例代码的文章就介绍到这了,更多相关Unity音频内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Unity实现音频播放管理器

    本文实例为大家分享了Unity实现音频播放管理器的具体代码,供大家参考,具体内容如下 1.模块化,直接用.创建一个空物体,把此脚本拖上去,然后把需要播放的所有音频拖到面板上的"AudioList"中: 2.通过AudioManagerP._instance直接调用方法,包含: 暂停: 继续播放: 停止播放: 播放背景音乐(0号播放器专用于播放背景音): 直接播放声音(带参数1.播放器序号  2.音频的名字    3.声音大小    4.   是否循环): 直接播放呻吟(带参数1.播放器

  • Unity常用音频操作类示例代码

    下面通过代码给大家介绍Unity常用音频操作类,具体代码如下所示: using UnityEngine; using System.Collections; public class AudioPlay : MonoBehaviour { public static AudioPlay Instance; public AudioClip[] FuChuAudio; public AudioSource FCAudio; // public AudioSource BabyAudio; // U

  • Python Learning 列表的更多操作及示例代码

    遍历列表-for循环 列表中存储的元素可能非常多,如果想一个一个的访问列表中的元素,可能是一件十分头疼的事.那有没有什么好的办法呢?当然有!使用 for循环 假如有一个食物名单列表,通过 for循环 将列表中的食物名称都打印出来 # 定义一个食物名单列表 foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza'] # 循环访问foods列表 for food in foods: print(food) 输出: potato  tomato 

  • C++ I/O文件读写操作的示例代码

    IO: 向设备输入数据和输出数据C++的IO流 c++中,必须通过特定的已经定义好的类, 来处理IO(输入输出) 文件流: 对文件进行读写操作 头文件: 类库: ifstream 对文件输入(读文件) ofstream 对文件输出(写文件) fstream 对文件输入或输出 //写文件 #include <fstream> #include <iostream> #include <string> using namespace std; int main() { st

  • pyqt5 textEdit、lineEdit操作的示例代码

    1.定义一个textEdit/lineEdit:(lineEdit只需要将代码中的QTextEdit改为QLineEdit) self.textEdit = QtWidgets.QTextEdit(Dialog) self.textEdit.setGeometry(QtCore.QRect(70, 90, 171, 391)) self.textEdit.setObjectName("textEdit") self.textEdit.setReadOnly(True)#设置为只读,即可

  • C# 利用Selenium实现浏览器自动化操作的示例代码

    概述 Selenium是一款免费的分布式的自动化测试工具,支持多种开发语言,无论是C. java.ruby.python.或是C# ,你都可以通过selenium完成自动化测试.本文以一个简单的小例子,简述C# 利用Selenium进行浏览器的模拟操作,仅供学习分享使用,如有不足之处,还请指正. 涉及知识点 要实现本例的功能,除了要掌握Html ,JavaScript,CSS等基础知识,还涉及以下知识点: log4net:主要用于日志的记录和存储,本例采用log4net进行日志记录,便于过程跟踪

  • Numpy的各种下标操作的示例代码

    目录 技术背景 二维矩阵的取法 取单行和单个元素 下标的list和tuple格式区分 冒号的使用 现存的list与numpy.array不相兼容的取法 两个冒号的组合用法 用None作扩维 高维矩阵的取法 总结概要 技术背景 本文所使用的Numpy版本为:Version: 1.20.3.基于Python和C++开发的Numpy一般被认为是Python中最好的Matlab替代品,其中最常见的就是各种Numpy矩阵类型的运算.对于矩阵的运算而言,取对轴和元素是至关重要的,这里我们来看看一些常见的Nu

  • Pytorch实现常用乘法算子TensorRT的示例代码

    目录 1.乘法运算总览 2.乘法算子实现 2.1矩阵乘算子实现 2.2点乘算子实现 本文介绍一下 Pytorch 中常用乘法的 TensorRT 实现. pytorch 用于训练,TensorRT 用于推理是很多 AI 应用开发的标配.大家往往更加熟悉 pytorch 的算子,而不太熟悉 TensorRT 的算子,这里拿比较常用的乘法运算在两种框架下的实现做一个对比,可能会有更加直观一些的认识. 1.乘法运算总览 先把 pytorch 中的一些常用的乘法运算进行一个总览: torch.mm:用于

  • java中 IO 常用IO操作类继承结构分析

    IO 常用IO操作类继承结构 IO 字符流 Reader(源) BufferedReader LineNumberReader InputStreamReader FileReader(字节流通向字符流的桥梁)       StringReader         Writer(目的) BufferedWriter       OutputStreamWriter FileWriter(字符流通向字节流的桥梁)       StringWriter 空       PrintWriter 空  

  • Laravel 5.5 的自定义验证对象/类示例代码详解

    Laravel 5.5 将提供一个全新的自定义验证规则的对象,以作为原来的 Validator::extend 方法的替代. Laravel 5.5 将提供一个全新的自定义验证规则的对象,以作为原来的 Validator::extend 方法的替代..很多时候我们会直接用正则表达式来处理这种特殊的验证,也有时候我们会选择用 Validator::extend 来扩展一个自定义的规则.但在 Laravel 5.5 版本中,我们有了新的手段,只要定义一个实现 Illuminate\Contracts

  • CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)

    本文实例总结了CI框架常用经典操作类.分享给大家供大家参考,具体如下: 1. 超级对象中的URI CI_URI类的解析url的相关信息 直接使用$this->uri可以使用它的相关属性 system/core/URI.php文件中 部分常用属性: (1) 分段获取url相关信息 $this->uri->segment(4); //获取url中pathinfo //的第四段的值 入口文件.php/控制器/动作/参数1/参数2/... (2) 通过方法中的形参传参 需要设默认值和顺序要注意

随机推荐