首先在Hierarchy窗口中新建空组件。
选中新建的组件,在Inspector窗口中添加组件“Audio Source”,并将要播放的音乐拖入其"Audio Clip"属性。
关闭"Play On Awake"选项,视情况选择是否开启"Loop"选项。开启后音频能够循环。
新建一个组件,添加Box Collider组件,并调整其大小与位置。
打开Box Collider组件的Is Trigger属性,否则会有碰撞体积。
为这个组件添加一个脚本,命名为Test。
在脚本中删除默认代码,添加如下代码:
using UnityEngine; public class Test : MonoBehaviour { //音乐 public AudioSource audioSource; //判断 bool PlayerAtExit = false; bool HasAudioplayed;//音频只播放一次 //玩家 public GameObject player; //触发器事件,传入控制的触发器 private void OnTriggerEnter(Collider other) { //如果进入触发器的是玩家 if (other.gameObject == player) { PlayerAtExit = true; } } //每帧调用此函数 void Update() { if (PlayerAtExit) { if (!HasAudioplayed) { audioSource.Play(); HasAudioplayed = true; } } } }
通过HasAudioplayed变量,保证音频不会每帧都从头播放。
将步骤1创建的音频空组件拖入脚本的Audio Source属性。将玩家组件拖入Player属性。
运行游戏,触发组件后可以正常播放声音。