Skip to content

Commit c66465b

Browse files
committed
修改资源加载为async-await
1 parent 6fde340 commit c66465b

File tree

605 files changed

+49190
-222
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

605 files changed

+49190
-222
lines changed

Assets/Game/Scene/Main.unity

Lines changed: 114 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ RenderSettings:
3838
m_ReflectionIntensity: 1
3939
m_CustomReflection: {fileID: 0}
4040
m_Sun: {fileID: 0}
41-
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
41+
m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1}
4242
m_UseRadianceAmbientProbe: 0
4343
--- !u!157 &3
4444
LightmapSettings:
@@ -50,7 +50,6 @@ LightmapSettings:
5050
m_BounceScale: 1
5151
m_IndirectOutputScale: 1
5252
m_AlbedoBoost: 1
53-
m_TemporalCoherenceThreshold: 1
5453
m_EnvironmentLightingMode: 0
5554
m_EnableBakedLightmaps: 1
5655
m_EnableRealtimeLightmaps: 1
@@ -116,9 +115,10 @@ NavMeshSettings:
116115
--- !u!1 &113224292
117116
GameObject:
118117
m_ObjectHideFlags: 0
119-
m_PrefabParentObject: {fileID: 0}
120-
m_PrefabInternal: {fileID: 0}
121-
serializedVersion: 5
118+
m_CorrespondingSourceObject: {fileID: 0}
119+
m_PrefabInstance: {fileID: 0}
120+
m_PrefabAsset: {fileID: 0}
121+
serializedVersion: 6
122122
m_Component:
123123
- component: {fileID: 113224296}
124124
- component: {fileID: 113224295}
@@ -134,27 +134,35 @@ GameObject:
134134
--- !u!81 &113224293
135135
AudioListener:
136136
m_ObjectHideFlags: 0
137-
m_PrefabParentObject: {fileID: 0}
138-
m_PrefabInternal: {fileID: 0}
137+
m_CorrespondingSourceObject: {fileID: 0}
138+
m_PrefabInstance: {fileID: 0}
139+
m_PrefabAsset: {fileID: 0}
139140
m_GameObject: {fileID: 113224292}
140141
m_Enabled: 1
141142
--- !u!124 &113224294
142143
Behaviour:
143144
m_ObjectHideFlags: 0
144-
m_PrefabParentObject: {fileID: 0}
145-
m_PrefabInternal: {fileID: 0}
145+
m_CorrespondingSourceObject: {fileID: 0}
146+
m_PrefabInstance: {fileID: 0}
147+
m_PrefabAsset: {fileID: 0}
146148
m_GameObject: {fileID: 113224292}
147149
m_Enabled: 1
148150
--- !u!20 &113224295
149151
Camera:
150152
m_ObjectHideFlags: 0
151-
m_PrefabParentObject: {fileID: 0}
152-
m_PrefabInternal: {fileID: 0}
153+
m_CorrespondingSourceObject: {fileID: 0}
154+
m_PrefabInstance: {fileID: 0}
155+
m_PrefabAsset: {fileID: 0}
153156
m_GameObject: {fileID: 113224292}
154157
m_Enabled: 1
155158
serializedVersion: 2
156159
m_ClearFlags: 1
157160
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
161+
m_projectionMatrixMode: 1
162+
m_SensorSize: {x: 36, y: 24}
163+
m_LensShift: {x: 0, y: 0}
164+
m_GateFitMode: 2
165+
m_FocalLength: 50
158166
m_NormalizedViewPortRect:
159167
serializedVersion: 2
160168
x: 0
@@ -184,8 +192,9 @@ Camera:
184192
--- !u!4 &113224296
185193
Transform:
186194
m_ObjectHideFlags: 0
187-
m_PrefabParentObject: {fileID: 0}
188-
m_PrefabInternal: {fileID: 0}
195+
m_CorrespondingSourceObject: {fileID: 0}
196+
m_PrefabInstance: {fileID: 0}
197+
m_PrefabAsset: {fileID: 0}
189198
m_GameObject: {fileID: 113224292}
190199
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
191200
m_LocalPosition: {x: 0, y: 1, z: -10}
@@ -197,9 +206,10 @@ Transform:
197206
--- !u!1 &627555131
198207
GameObject:
199208
m_ObjectHideFlags: 0
200-
m_PrefabParentObject: {fileID: 0}
201-
m_PrefabInternal: {fileID: 0}
202-
serializedVersion: 5
209+
m_CorrespondingSourceObject: {fileID: 0}
210+
m_PrefabInstance: {fileID: 0}
211+
m_PrefabAsset: {fileID: 0}
212+
serializedVersion: 6
203213
m_Component:
204214
- component: {fileID: 627555133}
205215
- component: {fileID: 627555132}
@@ -213,8 +223,9 @@ GameObject:
213223
--- !u!108 &627555132
214224
Light:
215225
m_ObjectHideFlags: 0
216-
m_PrefabParentObject: {fileID: 0}
217-
m_PrefabInternal: {fileID: 0}
226+
m_CorrespondingSourceObject: {fileID: 0}
227+
m_PrefabInstance: {fileID: 0}
228+
m_PrefabAsset: {fileID: 0}
218229
m_GameObject: {fileID: 627555131}
219230
m_Enabled: 1
220231
serializedVersion: 8
@@ -240,6 +251,7 @@ Light:
240251
serializedVersion: 2
241252
m_Bits: 4294967295
242253
m_Lightmapping: 4
254+
m_LightShadowCasterMode: 0
243255
m_AreaSize: {x: 1, y: 1}
244256
m_BounceIntensity: 1
245257
m_ColorTemperature: 6570
@@ -249,8 +261,9 @@ Light:
249261
--- !u!4 &627555133
250262
Transform:
251263
m_ObjectHideFlags: 0
252-
m_PrefabParentObject: {fileID: 0}
253-
m_PrefabInternal: {fileID: 0}
264+
m_CorrespondingSourceObject: {fileID: 0}
265+
m_PrefabInstance: {fileID: 0}
266+
m_PrefabAsset: {fileID: 0}
254267
m_GameObject: {fileID: 627555131}
255268
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
256269
m_LocalPosition: {x: 0, y: 3, z: 0}
@@ -260,44 +273,114 @@ Transform:
260273
m_RootOrder: 1
261274
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
262275
--- !u!1001 &1162762958
263-
Prefab:
276+
PrefabInstance:
264277
m_ObjectHideFlags: 0
265278
serializedVersion: 2
266279
m_Modification:
267280
m_TransformParent: {fileID: 0}
268281
m_Modifications:
269-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
282+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
270283
propertyPath: m_LocalPosition.x
271284
value: 0
272285
objectReference: {fileID: 0}
273-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
286+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
274287
propertyPath: m_LocalPosition.y
275288
value: 0
276289
objectReference: {fileID: 0}
277-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
290+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
278291
propertyPath: m_LocalPosition.z
279292
value: 0
280293
objectReference: {fileID: 0}
281-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
294+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
282295
propertyPath: m_LocalRotation.x
283296
value: 0
284297
objectReference: {fileID: 0}
285-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
298+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
286299
propertyPath: m_LocalRotation.y
287300
value: 0
288301
objectReference: {fileID: 0}
289-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
302+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
290303
propertyPath: m_LocalRotation.z
291304
value: 0
292305
objectReference: {fileID: 0}
293-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
306+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
294307
propertyPath: m_LocalRotation.w
295308
value: 1
296309
objectReference: {fileID: 0}
297-
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
310+
- target: {fileID: 4562670104751656, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
298311
propertyPath: m_RootOrder
299312
value: 2
300313
objectReference: {fileID: 0}
314+
- target: {fileID: 114793819130240308, guid: 065e1adaeb414224cb1b1da98f54d73c,
315+
type: 3}
316+
propertyPath: ResUpdateType
317+
value: 1
318+
objectReference: {fileID: 0}
301319
m_RemovedComponents: []
302-
m_ParentPrefab: {fileID: 100100000, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 2}
303-
m_IsPrefabParent: 0
320+
m_SourcePrefab: {fileID: 100100000, guid: 065e1adaeb414224cb1b1da98f54d73c, type: 3}
321+
--- !u!1 &2063981359
322+
GameObject:
323+
m_ObjectHideFlags: 0
324+
m_CorrespondingSourceObject: {fileID: 0}
325+
m_PrefabInstance: {fileID: 0}
326+
m_PrefabAsset: {fileID: 0}
327+
serializedVersion: 6
328+
m_Component:
329+
- component: {fileID: 2063981362}
330+
- component: {fileID: 2063981361}
331+
- component: {fileID: 2063981360}
332+
m_Layer: 0
333+
m_Name: EventSystem
334+
m_TagString: Untagged
335+
m_Icon: {fileID: 0}
336+
m_NavMeshLayer: 0
337+
m_StaticEditorFlags: 0
338+
m_IsActive: 1
339+
--- !u!114 &2063981360
340+
MonoBehaviour:
341+
m_ObjectHideFlags: 0
342+
m_CorrespondingSourceObject: {fileID: 0}
343+
m_PrefabInstance: {fileID: 0}
344+
m_PrefabAsset: {fileID: 0}
345+
m_GameObject: {fileID: 2063981359}
346+
m_Enabled: 1
347+
m_EditorHideFlags: 0
348+
m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
349+
m_Name:
350+
m_EditorClassIdentifier:
351+
m_HorizontalAxis: Horizontal
352+
m_VerticalAxis: Vertical
353+
m_SubmitButton: Submit
354+
m_CancelButton: Cancel
355+
m_InputActionsPerSecond: 10
356+
m_RepeatDelay: 0.5
357+
m_ForceModuleActive: 0
358+
--- !u!114 &2063981361
359+
MonoBehaviour:
360+
m_ObjectHideFlags: 0
361+
m_CorrespondingSourceObject: {fileID: 0}
362+
m_PrefabInstance: {fileID: 0}
363+
m_PrefabAsset: {fileID: 0}
364+
m_GameObject: {fileID: 2063981359}
365+
m_Enabled: 1
366+
m_EditorHideFlags: 0
367+
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
368+
m_Name:
369+
m_EditorClassIdentifier:
370+
m_FirstSelected: {fileID: 0}
371+
m_sendNavigationEvents: 1
372+
m_DragThreshold: 10
373+
--- !u!4 &2063981362
374+
Transform:
375+
m_ObjectHideFlags: 0
376+
m_CorrespondingSourceObject: {fileID: 0}
377+
m_PrefabInstance: {fileID: 0}
378+
m_PrefabAsset: {fileID: 0}
379+
m_GameObject: {fileID: 2063981359}
380+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
381+
m_LocalPosition: {x: 0, y: 0, z: 0}
382+
m_LocalScale: {x: 1, y: 1, z: 1}
383+
m_Children: []
384+
m_Father: {fileID: 0}
385+
m_RootOrder: 3
386+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

Assets/Game/Scripts/Resource/EditorResourceHelper.cs

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
using UnityEngine.SceneManagement;
1818
using Object = UnityEngine.Object;
1919
using UnitySceneManager = UnityEngine.SceneManagement.SceneManager;
20+
using System.Threading.Tasks;
21+
using UnityEditor.SceneManagement;
2022

2123
namespace GameFramework.Taurus
2224
{
@@ -32,21 +34,13 @@ public void SetResourcePath(PathType pathType, string rootAssetBundle = "AssetBu
3234
/// <typeparam name="T"></typeparam>
3335
/// <param name="assetName"></param>
3436
/// <returns></returns>
35-
public T LoadAsset<T>(string assetBundleName,string assetName) where T : Object
37+
public Task<T> LoadAsset<T>(string assetBundleName,string assetName) where T : Object
3638
{
37-
return AssetDatabase.LoadAssetAtPath<T>(assetName);
39+
TaskCompletionSource<T> task = new TaskCompletionSource<T>();
40+
task.SetResult(AssetDatabase.LoadAssetAtPath<T>(assetName));
41+
return task.Task;
3842
}
39-
40-
41-
/// <summary>
42-
/// 异步加载资源
43-
/// </summary>
44-
/// <param name="assetName">资源名称</param>
45-
public void LoadAssetAsync<T>(string assetBundleName,string assetName, Action<string, UnityEngine.Object> asyncCallback) where T : Object
46-
{
47-
asyncCallback.Invoke(assetName,AssetDatabase.LoadAssetAtPath<T>(assetName));
48-
}
49-
43+
5044
/// <summary>
5145
/// 卸载资源 主要为卸载AssetBundle
5246
/// </summary>
@@ -60,14 +54,13 @@ public void UnloadAsset(string assetBundleName, bool unload)
6054
/// 异步加载场景
6155
/// </summary>
6256
/// <param name="sceneName"></param>
63-
public AsyncOperation LoadSceneAsync(string assetBundleName,string sceneName, LoadSceneMode mode = LoadSceneMode.Additive)
57+
public Task<AsyncOperation> LoadSceneAsync(string assetBundleName,string sceneName, LoadSceneMode mode = LoadSceneMode.Additive)
6458
{
65-
if (mode == LoadSceneMode.Additive)
66-
return EditorApplication.LoadLevelAdditiveAsyncInPlayMode(sceneName);
67-
else
68-
return EditorApplication.LoadLevelAsyncInPlayMode(sceneName);
69-
// return UnitySceneManager.LoadSceneAsync(sceneName, mode);
70-
}
59+
TaskCompletionSource<AsyncOperation> task = new TaskCompletionSource<AsyncOperation>();
60+
task.SetResult(EditorSceneManager.LoadSceneAsyncInPlayMode(sceneName, new LoadSceneParameters(mode)));
61+
return task.Task;
62+
// return UnitySceneManager.LoadSceneAsync(sceneName, mode);
63+
}
7164

7265
/// <summary>
7366
/// 卸载场景

Assets/Game/Scripts/State/LoadResourceState.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public override void OnEnter(params object[] parameters)
3030
//加载ab包的mainfest文件
3131
GameMode.Resource.SetMainfestAssetBundle(versionInfo.ManifestAssetBundle, versionInfo.IsEncrypt);
3232

33+
//切换到预加载的状态
34+
ChangeState<PreloadState>();
3335
}
3436

3537
public override void OnExit()

Assets/Game/Scripts/State/PreloadState.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
//-----------------------------------------------------------------------
99
using System.Collections;
1010
using System.Collections.Generic;
11+
using UnityEngine;
1112

1213
namespace GameFramework.Taurus
1314
{
@@ -18,6 +19,7 @@ public class PreloadState : GameState
1819
public override void OnEnter(params object[] parameters)
1920
{
2021
base.OnEnter(parameters);
22+
2123
}
2224

2325
public override void OnExit()

Assets/GameFramework/Audio/AudioManager.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
using System.Collections;
1111
using System.Collections.Generic;
12+
using System.Threading.Tasks;
1213
using UnityEngine;
1314

1415
namespace GameFramework.Taurus
@@ -79,15 +80,15 @@ public void AddSoundEffect(string assetBundleName,string audioClipPath)
7980
/// 播放在GameObject上的声音
8081
/// </summary>
8182
/// <param name="audioClipPath"></param>
82-
public void PlayGameObjectSound(GameObject go,string assetBundleName,string audioClipPath)
83+
public async void PlayGameObjectSound(GameObject go,string assetBundleName,string audioClipPath)
8384
{
8485
AudioSource audioSource=go.GetComponent<AudioSource>();
8586
if (audioSource==null)
8687
{
8788
audioSource = go.AddComponent<AudioSource>();
8889
}
8990

90-
audioSource.clip = _resourceManager?.LoadAsset<AudioClip>(assetBundleName,audioClipPath);
91+
audioSource.clip = await _resourceManager?.LoadAsset<AudioClip>(assetBundleName,audioClipPath);
9192
if (audioSource.clip != null)
9293
audioSource.Play();
9394
}
@@ -190,11 +191,11 @@ public void RemoveSoundEffect(string audioClipPath)
190191
#region 内部函数
191192

192193
//添加音频
193-
private bool AddAuioClip(string assetBundleName,string audioClipPath, Dictionary<string, AudioClip> clips)
194+
private async Task<bool> AddAuioClip(string assetBundleName,string audioClipPath, Dictionary<string, AudioClip> clips)
194195
{
195196
if (!clips.ContainsKey(audioClipPath))
196197
{
197-
AudioClip audioClip = _resourceManager?.LoadAsset<AudioClip>(assetBundleName,audioClipPath);
198+
AudioClip audioClip = await _resourceManager?.LoadAsset<AudioClip>(assetBundleName,audioClipPath);
198199
if (audioClip != null)
199200
{
200201
clips.Add(audioClipPath, audioClip);

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 assetBundleName,string dataTablePath) where T :class, IDataTableRow,new()
33+
public async void LoadDataTable<T>(string assetBundleName,string dataTablePath) where T :class, IDataTableRow,new()
3434
{
35-
string data= _resource.LoadAsset<TextAsset>(assetBundleName,dataTablePath).text;
35+
string data= (await _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)