您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity入门 >
    声音的管理脚本
    时间:2015-03-07 10:49 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印



    Unity3D游戏中有些简单的功能代码被反复的重写,就犯相同的错,以下这个脚本是用来解决声音文件的。


    using UnityEngine;    
    using System.Collections;    
    public class AudioManager : MonoBehaviour    
    {    
        public AudioSource Play(AudioClip clip, Transform emitter)    
        {    
            return Play(clip, emitter, 1f, 1f);    
        }    
        public AudioSource Play(AudioClip clip, Transform emitter, float volume)    
        {    
            return Play(clip, emitter, volume, 1f);    
        }    
        /// <summary>    
        /// Plays a sound by creating an empty game object with an AudioSource    
        /// and attaching it to the given transform (so it moves with the transform). Destroys it after it finished playing.    
        /// </summary>    
        /// <param name="clip"></param>    
        /// <param name="emitter"></param>    
        /// <param name="volume"></param>    
        /// <param name="pitch"></param>    
        /// <returns></returns>    
        public AudioSource Play(AudioClip clip, Transform emitter, float volume, float pitch)    
        {    
            //Create an empty game object    
            GameObject go = new GameObject ("Audio: " +  clip.name);    
            go.transform.position = emitter.position;    
            go.transform.parent = emitter;    
            //Create the source    
            AudioSource source = go.AddComponent<AudioSource>();    
            source.clip = clip;    
            source.volume = volume;    
            source.pitch = pitch;    
            source.Play ();    
            Destroy (go, clip.length);    
            return source;    
        }    
        public AudioSource Play(AudioClip clip, Vector3 point)    
        {    
            return Play(clip, point, 1f, 1f);    
        }    
        public AudioSource Play(AudioClip clip, Vector3 point, float volume)    
        {    
            return Play(clip, point, volume, 1f);    
        }    
        /// <summary>    
        /// Plays a sound at the given point in space by creating an empty game object with an AudioSource    
        /// in that place and destroys it after it finished playing.    
        /// </summary>    
        /// <param name="clip"></param>    
        /// <param name="point"></param>    
        /// <param name="volume"></param>    
        /// <param name="pitch"></param>    
        /// <returns></returns>    
        public AudioSource Play(AudioClip clip, Vector3 point, float volume, float pitch)    
        {    
            //Create an empty game object    
            GameObject go = new GameObject("Audio: " + clip.name);    
            go.transform.position = point;    
            //Create the source    
            AudioSource source = go.AddComponent<AudioSource>();    
            source.clip = clip;    
            source.volume = volume;    
            source.pitch = pitch;    
            source.Play();    
            Destroy(go, clip.length);    
            return source;    
        }    
    }




    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。