From babf5b2dd7ea0e7c3adb583248c31741ae881789 Mon Sep 17 00:00:00 2001 From: zhangxl <1062808664@qq.com> Date: Fri, 19 Jul 2024 10:52:46 +0800 Subject: [PATCH] Update ResourcesLocalComponent.cs --- .../Hotfix/Res/ResourcesLocalComponent.cs | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/Assets/DemoGame/GameScript/Hotfix/Res/ResourcesLocalComponent.cs b/Assets/DemoGame/GameScript/Hotfix/Res/ResourcesLocalComponent.cs index 29d3be5..08c799c 100644 --- a/Assets/DemoGame/GameScript/Hotfix/Res/ResourcesLocalComponent.cs +++ b/Assets/DemoGame/GameScript/Hotfix/Res/ResourcesLocalComponent.cs @@ -12,6 +12,8 @@ namespace ZC UniTask LoadAssetAsync(string location, uint priority = 0) where T : UnityEngine.Object; UniTask LoadAssetAsync(string location, uint priority = 0); T LoadAssetSync(string location) where T : UnityEngine.Object; + GameObject LoadUIGameObjectSync(string location, UILayer uiLayer); + GameObject LoadGameObjectSync(string location); Object LoadAssetSync(string location); UniTask LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, bool suspendLoad = false, uint priority = 100, Action callback = null); } @@ -49,7 +51,7 @@ namespace ZC Low = transform.Find("Global/UI/UICanvas/Low"); Mid = transform.Find("Global/UI/UICanvas/Mid"); Hid = transform.Find("Global/UI/UICanvas/Hid"); - Parent = transform.Find("Global/GameObject"); + Parent = transform.Find("ObjectPool"); } public async UniTask LoadAssetAsync(string location, uint priority = 0) where T : UnityEngine.Object @@ -87,6 +89,41 @@ namespace ZC return assetObject; } + public GameObject LoadUIGameObjectSync(string location, UILayer uiLayer) + { + var loadAssetAsync = YooAssets.LoadAssetSync(location); + Debug.Log($"加载{location}完成"); + GameObject go = null; + switch (uiLayer) + { + case UILayer.Min: + go = Object.Instantiate(loadAssetAsync.AssetObject, this.Min) as GameObject; + break; + case UILayer.Low: + go = Object.Instantiate(loadAssetAsync.AssetObject, this.Low) as GameObject; + break; + case UILayer.Mid: + go = Object.Instantiate(loadAssetAsync.AssetObject, this.Mid) as GameObject; + break; + case UILayer.High: + go = Object.Instantiate(loadAssetAsync.AssetObject, this.Hid) as GameObject; + break; + default: + throw new ArgumentOutOfRangeException(nameof(uiLayer), uiLayer, null); + } + + return go; + } + + public GameObject LoadGameObjectSync(string location) + { + var loadAssetAsync = YooAssets.LoadAssetSync(location); + Debug.Log($"加载{location}完成"); + GameObject go = null; + go = Object.Instantiate(loadAssetAsync.AssetObject, this.Parent) as GameObject; + return go; + } + public Object LoadAssetSync(string location) { var loadAssetAsync = YooAssets.LoadAssetSync(location);