Unity 音效管理

来源:互联网 发布:知乎永久禁言怎么解除 编辑:程序博客网 时间:2024/06/09 14:30

创建一个音效管理脚本, 把想要播放的音效放在Resources目录下,需要播放的时候一行代码就可以搞定

话不多说,看脚本

using System.Collections;using System.Collections.Generic;using UnityEngine;public class AudioSourceController{    //此脚本不需要继承MonoBehaviour           public static Dictionary<string, AudioClip> audioDic = new Dictionary<string, AudioClip>();    /// <summary>    /// 需要播放某个音效的时候需要调用此方法就可以了    /// </summary>    /// <param name="dir">这是你音效的路径, 必须在Resources目录下</param>    /// <param name="name">音效的名称</param>    public static void PlaySnd(string dir, string name)    {        AudioClip clip = LoadClip(dir, name.ToLower());        if (clip != null)            AudioSource.PlayClipAtPoint(clip, Vector3.zero);   //Vector3.zero 是播放音乐的位置(0,0,0)        else                                                   // 如果主摄像机离这个位置远的话会出现声音小或者听不见的情况            Debug.LogError("Clip is Missing" + name);    }    public static AudioClip LoadClip(string dir, string name)    {        if (!audioDic.ContainsKey(name))        {            string dirMusic = dir + "/" + name;            AudioClip clip = Resources.Load(dirMusic) as AudioClip;            if (clip != null)                audioDic.Add(clip.name, clip);        }        return audioDic[name];    }    //调用测试    private void AudioSourceShow()    {        //在其他类里面调用的时候只需要类名点这个静态方法        //如我目前的音乐文件放在(Resources/Muisc)目录下,文件名为OnClick,        AudioSourceController.PlaySnd("Music", "OnClick");  //(此音效播放完会自动删除)    }}


原创粉丝点击