Skip to content

Commit 897084f

Browse files
committed
修改资源管理器,提出assetbundlename作为加载参数,方便卸载清理
1 parent 804c73d commit 897084f

13 files changed

+439
-265
lines changed

Assets/Game/Scripts/Resource/EditorResourceHelper.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void SetResourcePath(PathType pathType, string rootAssetBundle = "AssetBu
3232
/// <typeparam name="T"></typeparam>
3333
/// <param name="assetName"></param>
3434
/// <returns></returns>
35-
public T LoadAsset<T>(string assetName) where T : Object
35+
public T LoadAsset<T>(string assetBundleName,string assetName) where T : Object
3636
{
3737
return AssetDatabase.LoadAssetAtPath<T>(assetName);
3838
}
@@ -42,7 +42,7 @@ public T LoadAsset<T>(string assetName) where T : Object
4242
/// 异步加载资源
4343
/// </summary>
4444
/// <param name="assetName">资源名称</param>
45-
public void LoadAssetAsync<T>(string assetName, Action<string, UnityEngine.Object> asyncCallback) where T : Object
45+
public void LoadAssetAsync<T>(string assetBundleName,string assetName, Action<string, UnityEngine.Object> asyncCallback) where T : Object
4646
{
4747
asyncCallback.Invoke(assetName,AssetDatabase.LoadAssetAtPath<T>(assetName));
4848
}
@@ -52,15 +52,15 @@ public void LoadAssetAsync<T>(string assetName, Action<string, UnityEngine.Objec
5252
/// </summary>
5353
/// <param name="assetName">资源名称</param>
5454
/// <param name="allAssets">是否卸载调所有资源</param>
55-
public void UnloadAsset(string assetName, bool allAssets)
55+
public void UnloadAsset(string assetBundleName, bool unload)
5656
{
5757
}
5858

5959
/// <summary>
6060
/// 异步加载场景
6161
/// </summary>
6262
/// <param name="sceneName"></param>
63-
public AsyncOperation LoadSceneAsync(string sceneName, LoadSceneMode mode = LoadSceneMode.Additive)
63+
public AsyncOperation LoadSceneAsync(string assetBundleName,string sceneName, LoadSceneMode mode = LoadSceneMode.Additive)
6464
{
6565
return UnitySceneManager.LoadSceneAsync(sceneName, mode);
6666
}

Assets/GameFramework/Audio/AudioManager.cs

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -54,40 +54,40 @@ public void SetDefaultAudioSource(AudioSource backgroundMusic = null, AudioSourc
5454
/// 添加背景音乐
5555
/// </summary>
5656
/// <param name="audioClipPath"></param>
57-
public void AddBackroundMusic(string audioClipPath)
57+
public void AddBackroundMusic(string assetBundleName,string audioClipPath)
5858
{
59-
AddAuioClip(audioClipPath, _backGroundMusicClips);
59+
AddAuioClip(assetBundleName,audioClipPath, _backGroundMusicClips);
6060
}
6161
/// <summary>
6262
/// 添加UI音效
6363
/// </summary>
6464
/// <param name="audioClipPath"></param>
65-
public void AddUISound(string audioClipPath)
65+
public void AddUISound(string assetBundleName,string audioClipPath)
6666
{
67-
AddAuioClip(audioClipPath, _uiSoundClips);
67+
AddAuioClip(assetBundleName,audioClipPath, _uiSoundClips);
6868
}
6969
/// <summary>
7070
/// 添加音效
7171
/// </summary>
7272
/// <param name="audioClipPath"></param>
73-
public void AddSoundEffect(string audioClipPath)
73+
public void AddSoundEffect(string assetBundleName,string audioClipPath)
7474
{
75-
AddAuioClip(audioClipPath, _soundEffectClips);
75+
AddAuioClip(assetBundleName, audioClipPath, _soundEffectClips);
7676
}
7777

7878
/// <summary>
7979
/// 播放在GameObject上的声音
8080
/// </summary>
8181
/// <param name="audioClipPath"></param>
82-
public void PlayGameObjectSound(GameObject go,string audioClipPath)
82+
public void PlayGameObjectSound(GameObject go,string assetBundleName,string audioClipPath)
8383
{
8484
AudioSource audioSource=go.GetComponent<AudioSource>();
8585
if (audioSource==null)
8686
{
8787
audioSource = go.AddComponent<AudioSource>();
8888
}
8989

90-
audioSource.clip = _resourceManager?.LoadAsset<AudioClip>(audioClipPath);
90+
audioSource.clip = _resourceManager?.LoadAsset<AudioClip>(assetBundleName,audioClipPath);
9191
if (audioSource.clip != null)
9292
audioSource.Play();
9393
}
@@ -109,9 +109,8 @@ public void RemoveGameObjectSound(GameObject go)
109109
/// <param name="audioClipPath">音频的资源路径</param>
110110
public void PlayBackgroundMusic(string audioClipPath,bool addAudioClip=false)
111111
{
112-
if (addAudioClip)
113-
AddBackroundMusic(audioClipPath);
114-
PlayAudioClip(audioClipPath, _backGroundMusicClips, _backgroundMusic);
112+
if(_backGroundMusicClips.ContainsKey(audioClipPath))
113+
PlayAudioClip(audioClipPath, _backGroundMusicClips, _backgroundMusic);
115114
}
116115

117116
/// <summary>
@@ -137,9 +136,8 @@ public void RemoveBackgroundMusic(string audioClipPath)
137136
/// <param name="audioClipPath"></param>
138137
public void PlayUISound(string audioClipPath,bool addAudioClip=false)
139138
{
140-
if (addAudioClip)
141-
AddUISound(audioClipPath);
142-
PlayAudioClip(audioClipPath, _uiSoundClips, _uiSound);
139+
if(_uiSoundClips.ContainsKey(audioClipPath))
140+
PlayAudioClip(audioClipPath, _uiSoundClips, _uiSound);
143141
}
144142

145143
/// <summary>
@@ -166,9 +164,8 @@ public void RemoveUISound(string audioClipPath)
166164
/// <param name="addAudioClip"></param>
167165
public void PlaySoundEffect(string audioClipPath,bool addAudioClip=false)
168166
{
169-
if (addAudioClip)
170-
AddSoundEffect(audioClipPath);
171-
PlayAudioClip(audioClipPath, _soundEffectClips, _soundEffect);
167+
if (_soundEffectClips.ContainsKey(audioClipPath))
168+
PlayAudioClip(audioClipPath, _soundEffectClips, _soundEffect);
172169
}
173170

174171
/// <summary>
@@ -193,11 +190,11 @@ public void RemoveSoundEffect(string audioClipPath)
193190
#region 内部函数
194191

195192
//添加音频
196-
private bool AddAuioClip(string audioClipPath, Dictionary<string, AudioClip> clips)
193+
private bool AddAuioClip(string assetBundleName,string audioClipPath, Dictionary<string, AudioClip> clips)
197194
{
198195
if (!clips.ContainsKey(audioClipPath))
199196
{
200-
AudioClip audioClip = _resourceManager?.LoadAsset<AudioClip>(audioClipPath);
197+
AudioClip audioClip = _resourceManager?.LoadAsset<AudioClip>(assetBundleName,audioClipPath);
201198
if (audioClip != null)
202199
{
203200
clips.Add(audioClipPath, audioClip);
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
//-----------------------------------------------------------------------
2+
// <copyright>
3+
// Copyright (c) 2018 Zhang Yang. All rights reserved.
4+
// </copyright>
5+
// <describe> #框架的异常抛出# </describe>
6+
// <email> [email protected] </email>
7+
// <time> #2018年6月22日 15点01分# </time>
8+
//-----------------------------------------------------------------------
9+
10+
using System.Collections;
11+
using System.Collections.Generic;
12+
using System;
13+
using System.Runtime.Serialization;
14+
15+
namespace GameFramework.Taurus
16+
{
17+
[Serializable]
18+
public class UnityGameFrameworkException : Exception
19+
{
20+
public UnityGameFrameworkException()
21+
: base()
22+
{
23+
24+
}
25+
26+
/// <summary>
27+
/// 使用指定错误消息初始化游戏框架异常类的新实例。
28+
/// </summary>
29+
/// <param name="message">描述错误的消息</param>
30+
public UnityGameFrameworkException(string message)
31+
: base(message)
32+
{
33+
34+
}
35+
36+
/// <summary>
37+
/// 使用指定错误消息和对作为此异常原因的内部异常的引用来初始化游戏框架异常类的新实例。
38+
/// </summary>
39+
/// <param name="message">解释异常原因的错误消息。</param>
40+
/// <param name="innerException">导致当前异常的异常。如果 innerException 参数不为空引用,则在处理内部异常的 catch 块中引发当前异常。</param>
41+
public UnityGameFrameworkException(string message, Exception innerException)
42+
: base(message, innerException)
43+
{
44+
45+
}
46+
47+
/// <summary>
48+
/// 用序列化数据初始化游戏框架异常类的新实例。
49+
/// </summary>
50+
/// <param name="info">存有有关所引发异常的序列化的对象数据。</param>
51+
/// <param name="context">包含有关源或目标的上下文信息。</param>
52+
protected UnityGameFrameworkException(SerializationInfo info, StreamingContext context)
53+
: base(info, context)
54+
{
55+
56+
}
57+
}
58+
}

Assets/GameFramework/Base/UnityGameFrameworkException.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/GameFramework/DataTable/DataTableManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ public DataTableManager()
3030
/// <typeparam name="T"></typeparam>
3131
/// <param name="data">配置表的数据</param>
3232
/// <returns></returns>
33-
public void LoadDataTable<T>(string dataTablePath) where T :class, IDataTableRow,new()
33+
public void LoadDataTable<T>(string assetBundleName,string dataTablePath) where T :class, IDataTableRow,new()
3434
{
35-
string data= _resource.LoadAsset<TextAsset>(dataTablePath).text;
35+
string data= _resource.LoadAsset<TextAsset>(assetBundleName,dataTablePath).text;
3636
DataTable<T> dataTable = new DataTable<T>();
3737
string[] rows = data.Split('\n');
3838
foreach (var item in rows)

0 commit comments

Comments
 (0)