unity添加声音方法

今天发现自己在[size=10.5000pt]unity4.0 里面用 PlayOnAwake 这个方法的时候没有反应,然后我在别的电脑上也试了一下,还是不可以用,感觉代码上面是没有什么问题的啊,然后去群里面问别人,得到的回复只是一个菜鸟。好吧,菜鸟来总结下我自己知道的播放声音吧。

[size=10.5000pt]要想声音在场景中播放必须要用到两个组件,一个是音源组件 AudioSource. 一个是声音的监听的组件 AudioListener
[size=10.5000pt]首先,最容易的让它可以播放声音,就是直接手动添加组件。

[size=10.5000pt]先建立一个空对象,或者一个对象 cube 或者其他
1 
[size=10.5000pt]然后,在这个对象上添加声音源
2 
[size=10.5000pt]这里是刚刚添加的声音源,在声音剪辑[size=10.5000pt]AudioClip 上添加声音,(这个声音是自己导入进来的)。
3 
[size=10.5000pt]然后运行,就可以播放声音了。

[size=10.5000pt]这里本来是要添加 AudioListener, 但是在添加 AudioSource 的时候,它会自动在 Main Camera 上添加 AudioListener
4 
[size=10.5000pt]如果你希望声音不是在 Camera 上的,譬如说希望把声音监听就放在声音源的地方,这样就在有声音源的对象上添加 AudioListener
5 
6 
[size=10.5000pt]但是如果这样的话,运行的时候,会显示 There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.
[size=10.5000pt]是因为场景里面有两个声音监听在监听一个声音,所以,去掉 Camera 上的那个就好了。
7 



[size=10.5000pt]另外呢,还可以用代码来添加声音。

[size=10.5000pt]使用这句来添加组件 [RequireComponent(typeof(AudioSource))] 这个是在 [size=10.5000pt]C# 里面的写法
[size=10.5000pt]在 JS 里面是 @Script  [size=10.5000pt]RequireComponent[size=10.5000pt](AudioSource)
[size=10.5000pt][RequireComponent(typeof( 这里面是要添加的组件
[size=10.5000pt]不管是[size=10.5000pt]C# 还是 JS 的,后面都是不用“;”来结尾的。
8 
[size=10.5000pt]PlayOneShot[size=10.5000pt] ([size=10.5000pt]clip[size=10.5000pt] :  AudioClip [size=10.5000pt], [size=10.5000pt]volumeScale[size=10.5000pt] : float = 1.0F)

[size=10.5000pt]这里要注意的是,用[size=10.5000pt][RequireComponent(typeof(AudioSource))] 这种方法来添加组件,是不可以在空对象上添加的,要添加在一个实体上,譬如说 [size=10.5000pt]cube
[size=10.5000pt]点击 Hierarchy 下面的 create 弹出窗口里面可以选择的对象,都是可以用这种方法来添加组件的
9 
[size=10.5000pt]下面我是在一个[size=10.5000pt]cube 上添加该代码,就会自动添加 AudioSource 组件了。
10 
[size=10.5000pt]这个组件是用代码添加的,所以跟手动添加的有少少不一样,就是当你[size=10.5000pt]remove 这个组件的时候,就会弹出如下窗口
11 
[size=10.5000pt]想去掉它必须先去掉这个[size=10.5000pt]sound2 的脚本。
[size=10.5000pt]在运行的时候,点击界面上的 soundPlay 按钮就会播放一次声音。
12 
[size=10.5000pt]当我们再添加一个按钮来播放另外一个声音的时候还是可以共用这个声音源[size=10.5000pt]AudioSource
[size=10.5000pt]譬如我们现在再添加一个按钮 321 ,代码如下
13 
[size=10.5000pt]运行时,控制面板中显示声音源是只有一个的,如下图所示。
14 
[size=10.5000pt]界面上会出现两个按钮,点击不同的按钮就出现不同的声音
15 


[size=10.5000pt]还有一种播放声音的代码跟这个略有不同
代码如下
16 
[size=10.5000pt]这个是定义了声音源跟声音剪辑,还有声音的音量。
[size=10.5000pt]然后添加一个声音源的组件给定义的声音源,声音源的音频剪辑为定义的音频剪辑,声音源的大小为定义的大小[size=10.5000pt]0.6
[size=10.5000pt]然后让声音源在 Start 里面播放。就是开始运行的时候播放一次。
[size=10.5000pt]然后将代码放到一个 GameObject 上,如下图所示
17 
[size=10.5000pt]在运行的时候,就会显示声音源的组件,而且这里的声音源是一个声音源配对一个声音剪辑。代码就是,加多一个[size=10.5000pt]AudioSource AudioClip
18 
[size=10.5000pt]在控制面板里面运行时显示如下

19 

[size=10.5000pt]这里遇到一个问题是,在[size=10.5000pt]unity4.0  的时候使用 PlayOnAwake() 这个方法没有效果,但是同样的代码,在 unity3.5 里面是可以实现的。
[size=10.5000pt]下面是写在 unity3.5 里面的代码
20 
[size=10.5000pt]而且我在别的电脑上使用 unity4.0 以上版本的用 PlayOnAwake() 这个都是没有声音的,不过我是用 AudioSource.Play() 来让其在 4.0 里面发出声音

[size=10.5000pt]如果说是同一个游戏对象上需要发出不同的声音,可以用第一种代码。
[size=10.5000pt]如果是不同的游戏对象上发出声音,就可以用第二种代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值