U3D的里游戏音乐音效管理系统_简易版

转载请加上地址便于纠错  http://www.cnblogs.com/JeroChan/ 

借鉴公司内一位前辈的方法,音乐管理类,由于是小游戏,所以直接使用了动态创建&销毁的方法(Resources.Load(_Path)&Destroy(_obj))但如果游戏体量大的话可以优化下方法。

博客不常写是因为一些代码和思想实在拙劣,只好写写能复用的东西方便使用。

最近两天在学习对象池跟MVC框架的实现和一些系统音乐管理的优化,下篇博客加上。

 

上实例:

在Hierarchy面板创建一个空物体管理音频播放GameObject

 

在AudioManager里添加AudioSource组件(或代码动态修改,本例使用手动添加)
创建AudioManager类在AudioManager里

Resources目录下创建Audio并在里面存放音乐文件

 

##############################上代码#########################

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 
 5 public class AudioManager : MonoBehaviour {
 6 
 7     static public AudioManager Instance;
 8     private AudioSource sceneAudioSource;
 9 
10     private void Awake()
11     {
12         Instance = this;
13     }
14     void Start () {
15         sceneAudioSource = this.GetComponent<AudioSource>();
16     }
17 
18     public void SceneAudio(string _audioName,float _volume = 0.7f)
19     {
20         sceneAudioSource.clip = Resources.Load<AudioClip>("Audio/" + _audioName);
21         sceneAudioSource.volume = _volume;
22         sceneAudioSource.Play();
23     }
24 
25     public void EffectAudio(string _audioName, float _volume = 0.5f,float _delay = 0f)
26     {
27         GameObject tempObj = new GameObject();
28      tempObj.transform.parent = this.transform.GetChild(0);
29         AudioSource tempAduioSource = tempObj.AddComponent<AudioSource>();
30         tempAduioSource.clip = Resources.Load<AudioClip>("Audio/" + _audioName);
31         tempAduioSource.loop = false;
32         tempAduioSource.volume = _volume;
33         tempAduioSource.PlayDelayed(_delay);
34         Destroy(tempObj, tempAduioSource.clip.length);
35     }
36 }

 

转载于:https://www.cnblogs.com/JeroChan/p/8506906.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值