优化加载Apply

This commit is contained in:
2025-12-02 16:39:29 +08:00
parent 00729395a3
commit 11623b044b
2 changed files with 24 additions and 16 deletions

View File

@@ -12,10 +12,18 @@ namespace Demo.Game
return new GameObject().AddComponent<ParticleJudgement>();
}
[Content, SerializeField] private List<IEnumerator> TaskLoader = new();
[Content, SerializeField] private Dictionary<IInteraction.JudgementLevel, string> AssetBundles = new();
[Content, SerializeField] private Dictionary<IInteraction.JudgementLevel, GameObject> Prefabs = new();
[Content, SerializeField] private Dictionary<IInteraction.JudgementLevel, float> Durations = new();
protected override IEnumerator DoSomethingDuringApplyScript()
{
yield return base.DoSomethingDuringApplyScript();
foreach (var task in TaskLoader)
yield return task;
}
public override IEnumerator UnloadScript()
{
yield return base.UnloadScript();
@@ -31,18 +39,18 @@ namespace Demo.Game
/// <param name="prefab"></param>
/// <param name="duration">判定效果会现形的持续时间</param>
[Convention.RScript.Variable.Attr.Method]
public IEnumerator Load(IInteraction.JudgementLevel levelId, string ab, string prefab, float duration)
public void Load(IInteraction.JudgementLevel levelId, string ab, string prefab, float duration)
{
AssetBundle assetBundle = null;
yield return this.LoadAssetBundle(ab, x => assetBundle = x);
var req = assetBundle.LoadAssetAsync<GameObject>(prefab);
yield return req;
GameObject sub = Instantiate(req.asset as GameObject);
sub.SetActive(false);
Prefabs.Add(levelId, sub);
sub.transform.SetParent(transform);
AssetBundles.Add(levelId, ab);
Durations.Add(levelId, duration);
TaskLoader.Add(this.LoadAssetBundle(ab, assetBundle =>
{
var obj = assetBundle.LoadAsset<GameObject>(prefab);
GameObject sub = Instantiate(obj);
sub.SetActive(false);
Prefabs.Add(levelId, sub);
sub.transform.SetParent(transform);
AssetBundles.Add(levelId, ab);
Durations.Add(levelId, duration);
}));
}
private void CreateParticle(GameObject prefab)