大多数在线Unity有关如何只教程Unity在播放音乐。之后如何通过拖动它们无法继续添加音频文件

但有时在游戏中的对象要玩几个声音。这时候我们就需要使用代码控制,拖动推教程AudioClip颂值的方法就显得不是那么有用了

所以本篇将重点讲述怎样在Unity中创建一个最简化的音频播放器,并通过代码进行动态载入与播放

①创建一个Empty对象 点击菜单条[GameObject]–>Create Empty 命名为Audio

②选取这个空对象 点击菜单条[Component]–>Audio–>Audio Source 这样就在场景里创建了如图所看到的的一个喇叭

③创建资源目录命名为Resources,并把BeiTown.mp3文件拖入当中,注意一定要将资源目录名设为Resources,否则Resources.Load方法将无法找到资源文件

④创建脚本

接下来開始创建脚本

MusicPlayer.cs

1

2

3

4

5

6

7

8

9

10

11

12

13

14
using UnityEngine;

using System.Collections;



public class MusicPlayer : MonoBehaviour {



    public AudioSource Sound;



    public void Play(string str)

    {

        Sound.clip = (AudioClip)Resources.Load(str, 

q=typeof+msdn.microsoft.com">typeof(AudioClip));//调用Resources方法载入AudioClip资源

        Sound.Play();

    }



}

MusicTest.cs

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24
using UnityEngine;

using System.Collections;



public class MusicTest : MonoBehaviour {



    private MusicPlayer music;



    void Start () {

    

        music = (GetComponent("MusicPlayer") as MusicPlayer);//获取播放器对象



    }



    void OnGUI()

    {

        if(GUI.Button(new Rect(10, 10, 100, 50), "PLAY")){



            music.Play("BeiTown");//调用播放器Play方法



        }



    }



}

⑤将脚步绑定到AudioSource音源对象上。并将Audio对象赋给MusicPlayer脚本里的Sound对象,以便MusicPlayer对其进行操作

⑥点击播放button

这个时候就能听到声音了,可是细心的朋友会发现左右耳朵的声音并非一样大的,这是由于我们的声音监听绑定在了主摄像机上。这就照成了声音可能是从一个方向传来的3D效果,假设不想要这个效果也好办

选取Audio对象,点击菜单条[Commponent]–>Audio–>Audio Listener

为Audio对象创建一个声音监听。并勾选它

又一次点击播放button,这个时候发现依旧没有改变。控制台出现例如以下警告:There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.

不要着急,Main Camera 主摄像机上的Audio Listen 取消勾选了么

Unity默认一个scene里同一时候仅仅能有一个声音监听。事实上这也非常好理解,在自然情况下,人类也不可能做到两仅仅耳朵听取不同范围的声音(借助设备除外)

将其它的Audio Listener取消后,仅仅保留Audio上的Audio Listener,点击Playbutton,一切正常!

其它的暂停,停止,等等操作这里就不再加入了,感兴趣的朋友能够自己參考API进行操作,本文主要描写叙述怎样动态载入一首音乐。并将该类进行封装,同一时候最简化的代码也我们理解有利于手表。

今天,就在这里。旨在分享。和共勉之王。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Unity3D音频播放器 动态装载组件的更多相关文章

  1. IOS开发之简单音频播放器

    今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次.为了熟悉一下基本控件的使用方法,和UI部分的回调,下面开发了一个特别简易 ...

  2. OCiOS开发:音频播放器 AVAudioPlayer

    简单介绍 AVAudioPlayer音频播放器可以提供简单的音频播放功能.其头文件包括在AVFoudation.framework中. AVAudioPlayer未提供可视化界面,须要通过其提供的播放 ...

  3. 基于c开发的全命令行音频播放器

    cmus是一个内置了音频播放器的强大的音乐文件管理器.用它的基于ncurses的命令行界面,你可以浏览你的音乐库,并从播放列表或队列中播放音乐,这一切都是在命令行下. Linux上安装cmus 首先, ...

  4. HTML5 音频播放器-Javascript代码(短小精悍)

    直接上干货咯! //HTML5 音频播放器 lzpong 2015/01/19 var wavPlayer = function () { if(window.parent.wavPlayer) re ...

  5. 【jquery】一款不错的音频播放器——Amazing Audio Player

    前段时间分享了一款视频播放器,点击这里.今天介绍一款不错的音频播放器——Amazing Audio Player. 介绍: Amazing Audio Player 是一个使用很方便的 Windows ...

  6. 与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成

    原文:与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成 [索引页][源码下载] 与众不同 win ...

  7. 最简单的基于FFMPEG+SDL的音频播放器 ver2 (采用SDL2.0)

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  8. 最简单的基于FFMPEG+SDL的音频播放器 ver2 (採用SDL2.0)

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  9. Wavesurfer.js音频播放器插件的使用教程

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的音频播放器插件,本文主要记录它及其视觉效果插件Regions插件的使用方法. 1.创建实例 引入插件 import W ...

随机推荐

  1. UIControl-IOS发展

    UIKit提供了一组控件:UISwitch开关.UIButtonbutton.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件. UIPageCo ...

  2. Directx11 xnamath.h 报错

    xnamath.h 报错: 在标识符“XMConvertToRadians”的前面 如下报错 >d:\program files\microsoft directx sdk (june )\in ...

  3. 【转】C# string和StringBuilder的区别

    主要的区别在于 stringbuilder相对于string,效率要高些,string会在每次改变的时候进行内存重新组合,而stringbuilder则不会从新组合,另外stringbuilder有a ...

  4. 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?

    内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的, ...

  5. 16.怎样自学Struts2之Struts2异常处理[视频]

    16.怎样自学Struts2之Struts2异常处理[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了,仅仅好传到百度云上: http://pa ...

  6. Quartz.net开源作业调度

    Quartz.net开源作业调度框架使用详解 前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron- ...

  7. javascript变量,作用域和内存问题(一)

          js对象的引用是很有意思的,引用型对象是不可以直接引用的,我猜测这是原型的来源之一,有大神请详解或斧正.    “引用类型的值是保存在内存中的对象.与其他语言不同,JavaScript不允 ...

  8. HDU 4819 Mosaic D区段树

    连接:pid=4819">http://acm.hdu.edu.cn/showproblem.php?pid=4819 意:给出一个800×800下面的矩阵.每次更新一个点的值为以这个 ...

  9. ubuntu,从一个新用户,要转到新用户的命令行操作

    shibo-ubuntu@ubuntu:~$ sudo useradd karen [sudo] password for shibo-ubuntu:  shibo-ubuntu@ubuntu:~$ ...

  10. hdu4570Multi-bit Trie (间隙DP)

    Problem Description IP lookup is one of the key functions of routers for packets forwarding and clas ...