两个脚本

AudioManager.cs(绑定在播放音乐的组件上,作用是不让其销毁,并且在场景切换一个循环回到初始场景是判断重复)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AudioManager : MonoBehaviour
{private static AudioManager instance;//由静态变量初始化,不需要NEW,不然会有警告//一个循环之后回到初始场景判断是否重复,重复销毁private void Awake(){if (instance != null)//如果有了就销毁{//测试的时候:每次重新进入第一个场景的时候输出组件名称AudioObject,把重复产生的销毁//Debug.Log(instance.GetComponent<Component>());Destroy(this.gameObject);return;}else{instance = this;//绑定到AudioSource的组件上,判断是否重复}}//场景转换不销毁void Start(){DontDestroyOnLoad(this.gameObject);}}

Test.cs(绑定在三个场景的主相机上,作用是声明音乐播放的组件和一个音乐组件的复制体,通过这个复制体来进行音乐播放操作,设置8个button的方法)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;public class Test : MonoBehaviour
{private  GameObject musicInstant;//音乐预知物体,设置tagvoid Start(){//每次换场景都运行musicInstant = GameObject.FindGameObjectWithTag("sounds");//实例化为AudioObject播放音量的组件,用来执行操作}//场景1按钮public void Button01_to_02Click()//场景1->场景2转换{SceneManager.LoadScene("02");}public void Start01_ButtonClick()//音乐开始{musicInstant.gameObject.GetComponent<AudioSource>().Play();}public void Pause01_ButtonClick()//音乐暂停{musicInstant.gameObject.GetComponent<AudioSource>().Pause();}public void Stop01_ButtonClick()//音乐结束{musicInstant.gameObject.GetComponent<AudioSource>().Stop();}//场景2按钮public void Button02_to_01Click()//场景2->场景1转换{SceneManager.LoadScene("03");}public void Start02_ButtonClick()//音乐开始{musicInstant.gameObject.GetComponent<AudioSource>().Play();}public void Pause02_ButtonClick()//音乐暂停{musicInstant.gameObject.GetComponent<AudioSource>().Pause();}public void Stop02_ButtonClick()//音乐结束{musicInstant.gameObject.GetComponent<AudioSource>().Stop();}//场景3按钮public void Button03_to_01Click()//场景1->场景2转换{SceneManager.LoadScene("01");}public void Start03_ButtonClick()//音乐开始{musicInstant.gameObject.GetComponent<AudioSource>().Play();}public void Pause03_ButtonClick()//音乐暂停{musicInstant.gameObject.GetComponent<AudioSource>().Pause();}public void Stop03_ButtonClick()//音乐结束{musicInstant.gameObject.GetComponent<AudioSource>().Stop();}
}

界面的截图:

组件截图:

camera上面绑定Test脚本,三个场景,三个摄像机都绑定,在AudioObject上面绑定AudioManager脚本

总结:我个人觉得这也是单例的一种吧,不过这种方法我理解的是通过一个复制体的方式调用,后面介绍一种直接调用,那个的写法更正规些。

Unity学习_我终于终于把unity音乐这块用单例控制得死死的了(1)!!!!相关推荐

  1. unity 学习_宣布全新的学习平台Unity学习

    unity 学习 Experience a whole new way to access our award-winning learning courses, projects and tutor ...

  2. unity粒子系统_【笔记】关于unity的粒子系统和UI之间的位置冲突解决

    终于解决了去年毕设解决的problem:主菜单的背景添加了Particle System,但是它总是跳到camera最前面挡住其他子菜单的Panel. 当时用的最土但最有效的办法:移动不同UI元素间Z ...

  3. Unity学习之工厂模式

    Unity学习之工厂模式 文章目录 Unity学习之工厂模式 一.相关脚本 总结 一.相关脚本 代码如下(示例): Square : using UnityEngine;public class Sq ...

  4. Unity学习日志1

    unity入门 1.学习路线 初级:1.配置 2.unity官方入门教程 3.2d入门 4.3d入门 b站学习和官网learn.unity 进阶:核心知识点 中级: 高级: 2.基础阶段 unity安 ...

  5. Unity学习之对象池

    Unity学习之对象池 文章目录 Unity学习之对象池 前言 一.对象池是什么? 二.对象池使用步骤 总结 前言 在游戏中,生成大量对象(如子弹)是非常耗性能的,就更不用提事后销毁这些对象. 对象池 ...

  6. Unity学习日志_车轮碰撞器简介

    Unity学习日志_车轮碰撞器简介 1. 简介: 车轮碰撞器是一种针对地面车辆的特殊碰撞体.他有内置的碰撞检测.车轮物理系统和有滑胎摩擦的参考体.除了车轮,该碰撞体也可以用于其他游戏对象. 属性: M ...

  7. Unity学习日志_动画系统简介

    Unity学习日志_动画系统简介 Animation,Legacy动画系统 若要使用Animation,需要在创建Clip之前为物体手动添加Animation组件. Animation组件面板: 属性 ...

  8. Unity学习之_编辑器扩展

    Unity编辑器扩展是对现有的Unity进行自定义功能扩展的一种方法,可以简化一些重复的开发动作,也可以用于制作插件 unity编辑器模式 unity的编辑器扩展绝大部分是用于unity的编辑器模式下 ...

  9. 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)

    [Unity学习笔记]b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别) 自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难 ...

最新文章

  1. Oracle进阶学习之创建dblink
  2. 查看电脑python虚拟环境-Windows系统下,Python虚拟环境搭建
  3. 重构-改善既有代码的设计:重构原则(二)
  4. dw空心圆项目符号_如何懂建筑施工图?搞懂这些符号解析,耐下性子研究不会学不会...
  5. mysql+concat函数问题_Mysql5.7中使用group concat函数数据被截断的问题完美解决方法...
  6. [HDU] 1533 Going Home
  7. 如何在 Mac 上将 WebP 图像批量转换为 JPG?
  8. 结构光相移法-多频外差原理+实践(上)
  9. 第7章非线性系统的分析-7.1非线性系统的基本概念
  10. java商城答辩_java网上商城系统毕业设计答辩.ppt
  11. Windows明文密码获取
  12. ubuntu 下的pdfcrop功能不(pdf剪切)
  13. OL3矢量图层样式自定义
  14. GAMMA初学笔记三
  15. iOS开发- 文件共享 利用iTunes导入文件 并且显示已有文件
  16. WiFi Display 介绍
  17. 软件工程笔记:通用职责分配模式(grasp)
  18. AUTOCAD制图,如何给选中的图块编号呢?
  19. 举个栗子!Tableau 技巧(90):让你的图表背景变透明
  20. 电子商务交易系统的设计与实现(javaee+mysql)

热门文章

  1. Oracle RMAN
  2. 量化交易入门——平台框架、技术类策略、量化心得
  3. apollo全流程、原理、源码解析
  4. 行业分析-全球与中国隐形车衣市场现状及未来发展趋势
  5. 升级SolidWorks PDM存档服务器的办法
  6. (物理方面:求出跑道的长度)假设一个飞机的加速度是a而起飞的速度是v,那么可以使用下面的公式计算出起飞所需的最短跑道长度。length=v^2/(2a)
  7. vue3-antd-admin管理后台框架
  8. 彻底理解CALayer的position与anchorPoint
  9. linux服务器端口无法访问问题解决
  10. 未来教育计算机一级一本通光盘,《未来教育·2010全国计算机等级考试:一本通一级B》低价购书_计算机与互联网_孔网...