音频系统(二)

一、音频系统的简单应用

实现功能:在场景中加入背景音乐,并实现开门声

1)导入游戏场景,创建一个胶囊体作为游戏主角。给胶囊体添加“Rigidbody”组件,将主摄像机(含Audio Listener组件)绑定到胶囊体上并调整好位置;

2)选中一扇门,给门添加“Box Collider”组件并勾选“Is Trigger”;给门添加“Audio Source”组件,添加门音乐;给门添加Tag标签“door”;

3)将背景音乐拖拽到Hierarchy视图,调整好适当的位置。给背景音乐添加Audio Reverb Zone以及高通、低通音频过滤器。在Audio Source下调节好Spatial Blend(控制当角色距离大于“Reverb Zone”的Max Distance时的音量)

4)实现代码:(将代码添加到胶囊体上)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private AudioSource _audioSource;
    void FixedUpdate()
    {
        Move();
    }
    void Move()
    {
        //角色移动
        //运行时需要在"Rigidbody"组件上设置constraints(轴约束),否则角色胶囊无法保持平衡
        transform.Translate(0, 0, Input.GetAxis("Vertical") * Time.deltaTime * 5);
        transform.Rotate(0, Input.GetAxis("Horizontal") * Time.deltaTime * 50, 0);
    }
    void OnTriggerEnter(Collider other)
    {
        //使用OnTrigger方法必须在游戏物体或者角色上开启“Is Trigger”
        //如果触发标签为"door"的游戏对象,则改变它的位置并播放声音
        //如果transform.position前不添加“other”,则默认改变的是当前绑定脚本的游戏对象
        if (other.tag == "door")
        {
            other.transform.position = new Vector3(other.transform.position.x, other.transform.position.y + 3.6f, other.transform.position.z);
            _audioSource = other.GetComponent<AudioSource>();
            _audioSource.Play();
        }
    }
    void OnTriggerExit(Collider other)
    {
        if (other.tag == "door")
        {
            other.transform.position = new Vector3(other.transform.position.x, other.transform.position.y - 3.6f, other.transform.position.z);
            _audioSource = other.GetComponent<AudioSource>();
            _audioSource.Play();
        }
    }
}

时间: 2024-11-09 22:09:48

音频系统(二)的相关文章

Android音频系统之AudioTrack(二) 【转】

1.1.1 AudioPolicyService的路由实现 我们在AudioPolicyService小节曾将其比作是一个“路由器”,不过还没有深入解析它是如何完成路由选择的.这部分的功能与使用者——AudioTrack有很大关联,所以我们特别将它的实现原理剖析放在这里,以使读者可以综合起来理解. 路由器功能由如下几个部分组成: l  与发送方(AudioTrack)的接口 就好像路由器首先要接收到一个IP数据包,它才会去做路由处理,否则AudioPolicyService就成了“无源之水”了

第1章 音频系统

转载请注明:LXS, http://blog.csdn.net/uiop78uiop78/article/details/8787779 对于一部嵌入式设备来说,除了若干基础功能外(比如手机通话.短信),最重要的可能就是多媒体了——那么一个最简单的问题,什么是多媒体呢? 这个术语对应的英文单词是“Multi-Media”,直译过来就是多媒体.名称就很好地解释了它的含义,我们引用Wikipedia上对其的详细定义: Multimedia is media and content that uses

转:ANDROID音频系统散记之四:4.0音频系统HAL初探

昨天(2011-11-15)发布了Android4.0的源码,今天download下来,开始挺进4.0时代.简单看了一下,发现音频系统方面与2.3的有较多地方不同,下面逐一描述. 一.代码模块位置 1.AudioFlinger frameworks/base/services/audioflinger/ +-- Android.mk +-- AudioBufferProvider.h +-- AudioFlinger.cpp +-- AudioFlinger.h +-- AudioMixer.c

Android音频系统之音频框架

http://blog.csdn.net/xuesen_lin/article/details/8796492 我们可以结合目前已有的知识,想一下每一个层次都会包含哪些模块(先不考虑蓝牙音频部分)? ·        APP 这是整个音频体系的最上层,因而并不是Android系统实现的重点.比如厂商根据特定需求自己写的一个音乐播放器,游戏中使用到声音,或者调节音频的一类软件等等. ·        Framework 相信大家可以马上想到MediaPlayer和MediaRecorder,因为这

Android 音频系统:从 AudioTrack 到 AudioFlinger

1. Android 音频框架概述 Audio 是整个 Android 平台非常重要的一个组成部分,负责音频数据的采集和输出.音频流的控制.音频设备的管理.音量调节等,主要包括如下部分: Audio Application Framework:音频应用框架 AudioTrack:负责回放数据的输出,属 Android 应用框架 API 类 AudioRecord:负责录音数据的采集,属 Android 应用框架 API 类 AudioSystem: 负责音频事务的综合管理,属 Android 应

Android音频系统之AudioFlinger(一)【转】

1.1 AudioFlinger 在上面的框架图中,我们可以看到AudioFlinger(下面简称AF)是整个音频系统的核心与难点.作为Android系统中的音频中枢,它同时也是 一个系统服务,启到承上(为上层提供访问接口)启下(通过HAL来管理音频设备)的作用.只有理解了AudioFlinger,才能以此为基础更好地深入 到其它模块,因而我们把它放在前面进行分析. 1.1.1 AudioFlinger服务的启动和运行 我们知道,Android中的系统服务分为两类,分别是Java层和Native

Android音频系统之AudioFlinger(四)【转】

Android音频系统之AudioFlinger(四) 分类: ALSA/Audio 2014-06-12 17:37 195人阅读 评论(0) 收藏 举报 1.1.1 AudioMixer 每一个MixerThread都有一个唯一对应的AudioMixer(在MixerThread中用mAudioMixer表示),它的作用如其名所表示的,就是为了完成音频的混音操作.   图 13?14 MixerThread示意图 如上图,MixerThread对外开放的接口主要涉及到Parameter(比如

Android音频系统之AudioPolicyService 【转】

1.1 AudioPolicy Service 在AudioFlinger小节,我们反复强调它只是策略的执行者,而AudioPolicyService则是策略的制定者.这种分离方式有效地降低了整个系统的藕合性,而且为各个模块独立扩展功能提供了保障. 1.1.1 AudioPolicyService概述 汉语中有很多与策略有关联的俗语,比如“因地制宜”.“具体问题具体分析”;战争中只遵照兵书制定战术的行为也被我们称为是“纸上谈兵”.死读书.这些都 告诉我们,了解策略的执行环境是非常重要的,只有清晰

Android音频系统之音频框架(转http://blog.csdn.net/uiop78uiop78/article/details/8796492)

1.1 音频框架 转载请注明,From LXS, http://blog.csdn.net/uiop78uiop78/article/details/8796492 Android的音频系统在很长一段时间内都是外界诟病的焦点.的确,早期的Android系统在音频处理上相比于IOS有一定的差距,这也是很多专业的 音乐播放软件开发商没有推出Android平台产品的一个重要原因.但这并不代表它的音频框架一无是处,相反,基于Linux系统的Android平台有 很多值得我们学习的地方. 1.1.1 Li