服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - 一文详解Unity3D AudioSource组件使用示例

一文详解Unity3D AudioSource组件使用示例

2023-03-27 14:36little_fat_sheep C#

这篇文章主要为大家介绍了一文详解Unity3D AudioSource组件使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1 简介

1)AudioSource 与 AudioListener 简介

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

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

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

2)AudioSource 面板属性

一文详解Unity3D AudioSource组件使用示例

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

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

一文详解Unity3D AudioSource组件使用示例

3)代码控制音频播放

?
1
2
3
4
5
6
7
8
9
10
// 加载音频片段
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)游戏界面

一文详解Unity3D AudioSource组件使用示例

2)游戏对象层级结构

一文详解Unity3D AudioSource组件使用示例

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

3)AudioSource 组件

一文详解Unity3D AudioSource组件使用示例

4)脚本组件

AudioController.cs

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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组件使用示例的详细内容,更多关于Unity3D AudioSource组件的资料请关注服务器之家其它相关文章!

原文链接:https://juejin.cn/post/7213677398721986621

延伸 · 阅读

精彩推荐
  • C#Quartz.Net调度框架配置解析

    Quartz.Net调度框架配置解析

    这篇文章主要为大家详细介绍了Quartz.Net调度框架的配置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    小城岁月10842022-01-17
  • C#C#开发WinForm之DataGridView开发详解

    C#开发WinForm之DataGridView开发详解

    这篇文章主要介绍了C#开发WinForm之DataGridView开发详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    陈袁6202022-10-27
  • C#WPF InkCanvas绘制矩形和椭圆

    WPF InkCanvas绘制矩形和椭圆

    这篇文章主要为大家详细介绍了WPF InkCanvas绘制矩形和椭圆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    有个家伙喜欢代码9582022-03-06
  • C#C#超市收银系统设计

    C#超市收银系统设计

    这篇文章主要为大家详细介绍了C#超市收银系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    懒懒的5332022-01-10
  • C#C#使用winform简单导出Excel的方法

    C#使用winform简单导出Excel的方法

    这篇文章主要介绍了C#使用winform简单导出Excel的方法,结合实例形式分析了WinForm操作Excel文件的写入导出等相关技巧,需要的朋友可以参考下...

    雨竹10712021-11-26
  • C#C#获得程序的根目录以及判断文件是否存在的实例讲解

    C#获得程序的根目录以及判断文件是否存在的实例讲解

    今天小编大家分享一篇C#获得程序的根目录以及判断文件是否存在的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    燚夜7282022-07-27
  • C#C#版免费离线人脸识别之虹软ArcSoft V3.0(推荐)

    C#版免费离线人脸识别之虹软ArcSoft V3.0(推荐)

    本文只是简单介绍了如何使用虹软的离线SDK,进行人脸识别的方法,并且是图片的方式,本地离线识别最大的好处就是没有延迟,识别结果立马呈现,对...

    猫叔Vincent10522022-12-13
  • C#C#使用TensorFlow.NET训练自己的数据集的方法

    C#使用TensorFlow.NET训练自己的数据集的方法

    这篇文章主要介绍了C#使用TensorFlow.NET训练自己的数据集的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    pepure12182022-08-30