当前位置:   article > 正文

Unity笔记-----声音播放_unity怎么播放音乐

unity怎么播放音乐

一、AudioClip,AudioSource,AudioListener

1、AudioClip

音频文件导入到Unity以后,音频文件会变成audioClip。即音频片段。

2、AudioSource

Unity播放声音的组件,关联了AudioClip就可以播放声音了。具体的参数参考官方文档。

3、AudioListener

每个场景只能有一个AudioListener组件。它的声音播放必需的组件。默认绑在MainCamera上。

二、播放背景音乐

1、设置播放背景音乐

1、在Cube上添加一个AudioSource。设置对应的参数,即可以播放背景音乐。

2、新建一个Slider和Toggle控制背景音乐的音量和播放

1、新建一个Slider用于控制音量,新建一个Toggle按钮,用于控制音乐是否播放。

2、新建一个脚本BackSoundControl.cs挂载在MainCamera上。

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class BackSoundControl : MonoBehaviour
  6. {
  7. public Slider slider;
  8. public Toggle toggle;
  9. public AudioSource soundPlay;
  10. public void PlayOrStop()
  11. {
  12. if (toggle.isOn)
  13. {
  14. soundPlay.gameObject.SetActive(true);
  15. Volume();
  16. }
  17. else
  18. {
  19. soundPlay.gameObject.SetActive(false);
  20. }
  21. }
  22. public void Volume()
  23. {
  24. soundPlay.volume = slider.value;
  25. }
  26. }

3、相应参数的设置

4、Toggle和Slider的绑定设置

这样就可以了。

三、播放特效声音

1、球体预制体

1、新建一个球体预制体,比较简单哈

2、新建三个Cube。记住每个Cube上都要有Collider。不然射线检测不能用

3、新建一个脚本SoundDemo.cs。挂在在MainCamera上。

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class SoundDemo : MonoBehaviour
  5. {
  6. public GameObject perfab;
  7. // Start is called before the first frame update
  8. void Start()
  9. {
  10. }
  11. // Update is called once per frame
  12. void Update()
  13. {
  14. if(Input.GetMouseButtonDown(0))
  15. {
  16. Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  17. RaycastHit hit;
  18. if(Physics.Raycast(ray,out hit))
  19. {
  20. Instantiate(perfab, hit.transform.position, Quaternion.identity);
  21. }
  22. }
  23. }
  24. }

4、到这里我们可以实现的效果

5、我们新建一个脚本EffectSoundControl.cs声音的控制。

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. [RequireComponent(typeof(AudioSource))]
  5. public class EffectSoundControl : MonoBehaviour
  6. {
  7. public AudioClip[] audioClips;
  8. private AudioSource audioSource;
  9. private void Start()
  10. {
  11. audioSource = GetComponent<AudioSource>();
  12. audioSource.PlayOneShot(audioClips[0]);
  13. }
  14. private void OnBecameInvisible() //当游戏对象离开视野的时候运行
  15. {
  16. audioSource.PlayOneShot(audioClips[1]);
  17. Destroy(gameObject,2f);
  18. }
  19. }

6、我们把上面的这个脚本挂载在Sphere预制体上,并设置相应的参数

7、至此我们实现了点击方块,会播放一个声音,生成一个球,球会自由下落,当球消失在视野中,会播放另外一种声音,2秒后销毁球体。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号