首页 > 代码库 > 音频系统(二)
音频系统(二)
一、音频系统的简单应用
实现功能:在场景中加入背景音乐,并实现开门声
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(); } } }
音频系统(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。