- 共享特效管理器
- public class AudioSourceManager : MonoBehaviour
- {
- public static AudioSourceManager _instance;//单例
- private float volumn = 1.0f;//音量
- private bool isMute = false;
- public float Volumn { get => volumn; set => volumn = value; }
- public bool IsMute { get => isMute; set => isMute = value; }
- private void Awake()
- {
- _instance = this;
- DontDestroyOnLoad(this.gameObject);
- }
- /// <summary>
- /// 设置声音大小
- /// </summary>
- /// <param name="i"></param>
- public void SetVolumn(float i)
- {
- Volumn = i;
- }
- public void SetIsMute(bool ismute)
- {
- IsMute = ismute;
- }
- // Start is called before the first frame update
- void Start()
- {
- }
- // Update is called once per frame
- void Update()
- {
- }
- /// <summary>
- /// 共享声音
- /// </summary>
- /// <param name="pos"></param>
- /// <param name="clip"></param>
- public void PlayerAudio(Vector3 pos,AudioClip clip)
- {
- if (IsMute)
- {
- return;
- }
- //动态生成对象
- GameObject soundObj = new GameObject("Clip");
- soundObj.transform.position = pos;
- AudioSource audioSource = soundObj.AddComponent<AudioSource>();
- audioSource.clip = clip;
- audioSource.minDistance = 10.0f;
- audioSource.maxDistance = 30.0f;
- audioSource.volume = Volumn;
- audioSource.Play();
- Destroy(soundObj,clip.length);
- }
- }
Unity3d:共享声音
最新推荐文章于 2023-11-30 06:30:00 发布