Unity进阶--声音管理器学习笔记

2023-11-12

文章目录

  • 声音管理器
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AudioManager : MyrSingletonBase<AudioManager>
{
    //环境音
    private AudioSource enPlayer;
    //音效
    private AudioSource sePlayer;
    //音乐
    private AudioSource Player;

    void Start() {
        //初始化
        Player = gameObject.AddComponent<AudioSource>();
        Player.loop = true;
        sePlayer = gameObject.AddComponent<AudioSource>();
        enPlayer = gameObject.AddComponent<AudioSource>();
        GameObject.DontDestroyOnLoad(gameObject);
    }

#region 声音部分
    //通过文件名找到对应音频,并播放
    public void PlayMusic(string name, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlayMusic(clip, volume);
    }

    public void PlayMusic(AudioClip clip, float volume = 1){
        if (Player.isPlaying) {
            Player.Stop();
        }
        //音量大小
        Player.volume = volume;
        Player.clip = clip;
        Player.Play();
    }
    
    public void StopMusic() {
        Player.Stop();
    }

    //改变声音
    public void ChangeMusicVolume(float volume) {
        Player.volume = volume;
    }
#endregion

#region 环境音部分
    //播放环境音
    public void PlayEnMusic(string name, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlayEnMusic(clip, volume);
    }

    public void PlayEnMusic(AudioClip clip, float volume = 1){
        if (enPlayer.isPlaying) {
            enPlayer.Stop();
        }
        //音量大小
        enPlayer.volume = volume;
        enPlayer.clip = clip;
        enPlayer.Play();
    }
    
    //停止环境音
    public void StopEnMusic() {
        enPlayer.Stop();
    }

    public void ChangeEnMusicVolume(float volume) {
        enPlayer.volume = volume;
    }
#endregion

#region 音效部分
    public void PlaySeMusic(string name, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlaySeMusic(clip, volume);
    }

    public void PlaySeMusic(AudioClip clip, float volume = 1){
        sePlayer.PlayOneShot(clip, volume);
    }
#endregion

#region 环绕物体音
    public void PlaySeSoundOnObject(string name, GameObject go, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlaySeSoundOnObject(clip, go, volume);
    }

    public void PlaySeSoundOnObject(AudioClip clip, GameObject go, float volume = 1){
        AudioSource player =go.GetComponent<AudioSource>();
        if(player == null) {
            player = go.AddComponent<AudioSource>();
        }
        player.volume = volume;
        player.PlayOneShot(clip);
    }
#endregion
}

  • 放进总管理器里

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Managers
    {
       //声音管理器
       public static AudioManager m_Audio = AudioManager.Instance;
    }
    
    

在这里插入图片描述

建个Resources文件夹把声音放进去就可以使用了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity进阶--声音管理器学习笔记 的相关文章

  • 深入理解Android相机体系结构之十一

    手机相机的未来与发展 Android相机发展至今 通过开发者对框架的不断优化 算法人员对图像处理算法的不断提升 硬件工程师对硬件性能地不断调教 换来了在某些领域完全可以媲美专业相机的成像效果 这些成绩是有目共睹的 但是我们不能仅仅着眼于过去
  • 开源知识库平台Raneto

    什么是 Raneto Raneto 是一个开源知识库平台 它使用静态 Markdown 文件来支持您的知识库 官方提供了 doc demo 网站 即是帮助文档 也是个 demo 地址 https docs raneto com 准备 项目使
  • 【Yarn】ContainerAllocator Container申请工作机制

    文章目录 1 概述 2 继承体系 3 serviceStart 4 RMContainerAllocator 4 1 构造方法 4 1 1 createAssignedRequests 4 2 serviceInit 4 3 service

随机推荐

  • python 十大经典排序算法

    排序算法可以分为内部排序和外部排序 内部排序是数据记录在内存中进行排序 而外部排序是因排序的数据很大 一次不能容纳全部的排序记录 在排序过程中需要访问外存 常见的内部排序算法有 插入排序 希尔排序 选择排序 冒泡排序 归并排序 快速排序 堆
  • 利用python基于GBDT算法建立轨道交通客流预测模型,并使用网格搜索法进行参数调优...

    你可以使用Python来建立一个基于GBDT算法的轨道交通客流预测模型 为了得到最佳的预测效果 你可以使用网格搜索法来调整模型的参数 网格搜索法是一种通过对参数的不同取值进行试验来选择最优参数的方法
  • 机器学习笔记Machine Learning 之SVD (Singular Value Decomposition) 奇异值分解

    一 特征值和特征向量 A x x Ax lambda x Ax x A 是一个 n n 矩阵 x 是一个 n 维向量
  • webpack的四大核心概念

    webpack中文文档 https doc webpack china org concepts 一 Entry 入口 1 单个入口 简写 语法 语法 entry string Array
  • 3.9 使用Java的文档注释

    Java支持三种形式的注释 前两种是 和 第三种方式被称为文档注释 它以 开始 以 标志结束 文档注释提供将程序信息嵌入程序的功能 开发者可以使用javadoc工具将信息取出 然后转换为HTML文件 文档注释提供了编写程序文档的便利方式 j
  • 简洁直观的飞行器的坐标系与旋转矩阵推导

    Part1 定义5个坐标系 惯性坐标系 载具坐标系 载具1坐标系 载具2坐标系 机体坐标系 总结 载具坐标系与惯性坐标系的关系是平移关系 原点位置不同 载具坐标系绕Z旋转 psi 得到载具1坐标系 载具1坐标系绕Y旋转 theta
  • python爬虫———多线程threading模块爬取抖音用户信息

    爬虫背景 由于原来的数据库中有1 5亿左右的用户id 但是其中有1 2亿的用户资料是不完整的 没有粉丝数量 点赞数量等 算是无用数据 现在老板要求将这些没有资料的用户更新信息 咋办 刚开始的想法是使用主从模式 scrapy爬取 但是写着写着
  • window下安装mysql5.7

    一 配置环境 1 将安装包解压 本文中解压至G mysql5 7 23目录下 2 此电脑 gt 右击 gt 属性 gt 高级系统设置 gt 环境变量 在系统变量 gt 找到Path gt 编辑 将mysql的安装路径添加上去即可 即添加 G
  • 开发了一个抠图/去背景应用

    jr们早上好 iPhone 的 iOS 16有个很酷的功能 长按照片就能把其中的拍摄主体提取出来 抠图过程比一般的抠图App方便 精细度也更高 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img KIlpLyow 1
  • linux系统下搜索文件,Linux系统下搜索文件的方法

    我们知道在Linux中要搜索一个文件的话并是像在Windows中去直接在搜索栏中输入文件名称那么简单 那么对于初学者来说我们该怎么在Linux环境中去搜索文件呢 下面将为初学者带来一个简单的一个演示 操作起来相对比较简单易懂 感兴趣的朋友们
  • 精通软件性能测试与LoadRunner最佳实战 连载七

    9 1 基于不同用户群的性能测试 随着互联网的蓬勃发展 软件的性能测试已经越来越受到软件开发商 用户的重视 如 一个网站前期由于用户较少 随着使用用户的逐步增长 以及宣传力度的加强 软件的使用者可能会成几倍 几十倍甚至几百倍数量级的增长 如
  • 【优化算法】多目标蝗虫优化算法(MOGOA)

    一 简介 1 GOA数学模型 2 GOA迭代模型 3 GOA算法的基本流程 4 GOA缺点 二 源代码 clc clear close all Change these details with respect to your proble
  • windows常用系统库

    ws2 32 lib 如果没有链接 会报如下错 error LNK2019 无法解析的外部符号 imp closesocket 4 该符号在函数 wmain 中被引用 error LNK2019 无法解析的外部符号 imp recv 16
  • 2022.9.26小记 视频播放页

    1 判断浏览器类型 主要是否是微信 window navigator userAgent 1 定义 该属性包含了浏览器类型 版本 操作系统类型 浏览器引擎类型等信息 这个属性可以用来判断浏览器类型 2 使用 2 判断是否苹果ios系统 fu
  • C++前置声明的理解

    知识补充 在C C 中引入一个头文件时 在编译器预处理的时候会将引入头文件的地方简单替换成头文件的内容 这样做的后果是很容易引起头文件的重复引用 所以我们在编写头文件是一般有以下规定来防止头文件被重复包含 MyWidget h ifndef
  • Linux系统之源码编译部署Redis数据库

    Linux系统之源码编译部署Redis数据库 一 Redis数据库介绍 1 Redis简介 2 Redis特点 二 检查本地系统版本 三 下载Redis软件包 1 下载软件 2 查看redis安装包 四 安装redis前环境准备工作 1 解
  • 修改oracle数据库用户名及密码的方法

    一 修改前准备工作 使用ssh工具以root身份连接服务器 然后切换到oracle用户 su oracle 回车 使用sqlplus连接数据库 sqlplus nolog 回车 以管理员身份登录sys用户 conn sys sys as s
  • VMware vSphere中三种磁盘模式:精简置备/厚置备置零/厚置备延迟置零

    在VMware vSphere中 不管是以前的5 1版本 或者是现在的6 5版本 创建虚拟机时 在创建磁盘时 都会让选择磁盘的置备类型 如下图所示 分为 Thick ProvisionedLazy Zeroed 厚置备延迟置零 Thick
  • c语言第九章 结构体和共用体.ppt,第九章 结构体与共用体

    C程序设计实验报告 实验项目 第九章 结构体与共用体 姓名 许鑫琪 实验地点 514 教室 实验时间 6月26日 一 本章要点 对本章知识点进行归纳 含个人学习心得 实验练习 9 3 1 结构体变量的应用 9 3 2 结构提数组的应用 9
  • Unity进阶--声音管理器学习笔记

    文章目录 声音管理器 using System Collections using System Collections Generic using UnityEngine public class AudioManager MyrSing