1 简介

1)AudioSource 与 AudioListener 简介

AudioSource(音频源)组件用于控制播放 AudioClip(音频片段),能够控制 2D 和 3D(距离越远,声音越小)声音播放,它一般挂在产生声源的游戏对象上。

AudioListener (音频监听器)组件用于监听 AudioSource 播放的音频,它一般挂在 Camera 或游戏角色上,每个场景中最多只有一个 AudioListener。AudioSource 播放音频时,会产生一个音频场,只有在音频场范围内的 AudioListener 才能监听到声音。

AudioClip 是音频片段,AudioSource 在播放音频时,必须绑定一个 AudioClip。

2)AudioSource 面板属性

  • AudioClip:音频片段
  • Mute:静音
  • Play On Awake:游戏开始时播放声音
  • Loop:是否循环播放
  • Volume:音量
  • Spatial Blend:2D、3D 声音调节
  • Min Distance:3D 声音最小距离
  • Max Distance:3D 声音最大距离

补充:Unity3D 官方提供了一些音频资源,如下:

3)代码控制音频播放

// 加载音频片段
AudioClip audioClip = (AudioClip) Resources.Load("Audio/Footstep01");
// 获取AudioSource组件
AudioSource audioSource = GetComponent<AudioSource>();
// 绑定音频片段
audioSource.clip = audioClip;
// 播放音频(选其中一种方式)
audioSource.Play();
// 此方式播放音频, Unity3D会在transform.position处创建一个空游戏对象, 播放完音频后自动销毁该游戏对象
AudioSource.PlayClipAtPoint(audioClip, transform.position);

2 应用

本节将通过一个案例展示 Unity3D 播放立体声效果。

1)游戏界面

2)游戏对象层级结构

说明:AudioSourceSphere 游戏对象添加了 AudioSource 组件,并且将 Unity3D 官方提供的 Footstep01.wav 音频片段拖拽到 AudioSource 组件中;Player 游戏对象添加了 AudioListener,并移除 MainCamera 中默认添加的 AudioListener。

3)AudioSource 组件

4)脚本组件

AudioController.cs

using UnityEngine;public class AudioController : MonoBehaviour {private PlayerController player;private AudioSource audioSource;private void Awake() {audioSource = GetComponent<AudioSource>();player = GameObject.Find("Player").GetComponent<PlayerController>();}private void Update() {if (player.isMoving) {PlayAudio();}}private void PlayAudio() {if (!audioSource.isPlaying) {audioSource.Play();}}
}

说明: AudioController 脚本组件挂在 AudioSourceSphere 游戏对象上。

PlayerController.cs

using UnityEngine;public class PlayerController : MonoBehaviour {public bool isMoving = false;private void Update() {isMoving = Move();}private bool Move() {float hor = Input.GetAxis("Horizontal");float ver = Input.GetAxis("Vertical");if (Mathf.Abs(hor) > 0.1f || Mathf.Abs(ver) > 0.1f) {Vector3 dire = new Vector3(hor, 0, ver) * Time.deltaTime * 10;transform.position += dire;return true;}return false;}
}

说明: PlayerController 脚本组件挂在 Player 游戏对象上。

5)运行效果

按 ↑ ↓ ← → 键控制胶囊体移动,在不同位置可以听到不同音量大小的脚步声。

【Unity3D】AudioSource组件相关推荐

  1. 【Unity3D】Unity 组件 ③ ( 为物体添加 AudioSource 组件 | 添加 AudioSource 组件 | 导入音频文件 | 为组件设置音频 | Transform 变换组件 )

    文章目录 一.为物体添加 AudioSource 组件 1.AudioSource 组件简介 2.创建物体 3.添加 AudioSource 组件 4.导入音频文件资源 5.为 AudioSource ...

  2. Unity3D中的(Camera组件、AudioSource 组件、AudioListener 组件)

    目录 Camera组件 AudioSource 组件 AudioListener 组件 Camera组件 Unity中 的Camera ClearFlags:清除标记:决定屏幕中哪部分被清除.一般用于 ...

  3. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 组件的使用...

    unity中的组件可以可视化添加,删除 unity 中组件也可以通过代码添加 1 using UnityEngine; 2 using System.Collections; 3 4 public c ...

  4. Unity3D深入浅出 -组件与节点之间的调用关系

    一.transform组件用途 1.维护场景树 2.对3D物体的平移,缩放,旋转 二.场景树定义 在Hierarchy视图中显示的: 一个game_scene场景,下面有Main Camera节点,D ...

  5. Unity3D Image 组件附入图片问题

    作为新手经常会看到有个Image的组件 代码中理所当然的public 发现图片并不能附入其中, 解决办法直接 public Sprite 就可以了 转载于:https://www.cnblogs.co ...

  6. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- Animator动画状态机...

    Animator是unity 4版本之后的新动画 可以在编辑器中直接编辑连线各个动画的转换,也可以是用代码直接调用底层来转换动画 代码: 1 using UnityEngine; 2 using Sy ...

  7. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 组件的生命周期...

    组件的生命周期 1 using UnityEngine; 2 using System.Collections; 3 4 public class ComponentLift : MonoBehavi ...

  8. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 控制角色在真实的环境中寻路...

    内容中包含 base64string 图片造成字符过多,拒绝显示 转载于:https://www.cnblogs.com/dudu580231/p/5981999.html

  9. unity3d常用组件及分析

    转载于:https://www.cnblogs.com/revoid/p/6553651.html

最新文章

  1. python编程界面怎么打开-为Python程序添加图形化界面的教程
  2. 用计算机算出90除以6.28,用计算器计算:sin51°30′+ cos49°50′-tan46°10′的值是 .——青夏教育精英家教网——...
  3. PostgreSQL学习手册(系统表)
  4. [svc]数字证书基础知识
  5. c++矩阵类_数据结构-JavaScript矩阵类的设计与实现
  6. Windows Mobile Widget Emulator
  7. linux 2.6.35 内核配置 usb,Linux 2.6.24.4移植到S3C2410(nano2410)之:USB
  8. arcgis导入坐标点转面_ArcGIS问题:如何将坐标点或者点文件转换成线、面文件
  9. xampp配置虚拟主机
  10. CCF NOI1057 石头剪刀布
  11. Emgu-WPF学习使用-Rectangle识别
  12. 计算机任务栏的透明颜色设置,教你电脑任务栏透明设置教程
  13. reimage许可证密钥_思科 ASA 和 Firepower 威胁防御重新映像指南
  14. 一种提升多分类准确性的Trick
  15. [介绍]关于我与我的未来
  16. 计算机毕业设计(附源码)python智慧医疗系统
  17. 深度学习部署(十八): CUDA RunTime API _wa_仿射变换的实现
  18. 一键将手机投屏到电脑上玩,这下摸鱼更方便了
  19. 如何用AVS Video Editor给视频添加文字?
  20. thymeleaf和Jsp或者HTML有什么区别

热门文章

  1. Java-多人聊天小程序
  2. RecyclerView的使用(二):添加头部和尾部
  3. appendChild()方法
  4. C语言 -指针 与解引用*
  5. java工程师待遇_Java程序员的薪资水平如何?
  6. 【模板】ACM Conference的Latex论文模板与说明
  7. ajax跨域请求(CORS实现)
  8. 【权限管理框架】一文看懂Shiro权限管理框架!
  9. 详细解读给数据挖掘新手的6个案例
  10. 2021最新最全前端面试题(包含HTML、CSS、JavaScript、Vue、React、浏览器、算法与数据结构等)