From 06dad5a68a43bc4e8a0c9a694ac0119461ea8216 Mon Sep 17 00:00:00 2001
From: ALEXTANG <574809918@qq.com>
Date: Wed, 19 Jul 2023 17:33:28 +0800
Subject: [PATCH] Update UIWidget.cs
---
.../Runtime/GameFramework/UI/UIWidget.cs | 36 +++++++++++++++++--
1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/Assets/TEngine/Runtime/GameFramework/UI/UIWidget.cs b/Assets/TEngine/Runtime/GameFramework/UI/UIWidget.cs
index ba76d035..61925e7e 100644
--- a/Assets/TEngine/Runtime/GameFramework/UI/UIWidget.cs
+++ b/Assets/TEngine/Runtime/GameFramework/UI/UIWidget.cs
@@ -132,6 +132,30 @@ namespace TEngine
return CreateImp(parentUI, widgetRoot, false, visible);
}
+ ///
+ /// 根据资源名创建
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool CreateByPath(string resPath, UIBase parentUI, Transform parentTrans = null, bool visible = true)
+ {
+ GameObject goInst = parentUI.AssetReference.LoadAsset(resPath, parentTrans);
+ if (goInst == null)
+ {
+ return false;
+ }
+ if (!Create(parentUI, goInst, visible))
+ {
+ return false;
+ }
+ goInst.transform.localScale = Vector3.one;
+ goInst.transform.localPosition = Vector3.zero;
+ return true;
+ }
+
///
/// 根据prefab或者模版来创建新的 widget。
///
@@ -155,7 +179,10 @@ namespace TEngine
{
return false;
}
- AssetReference = AssetReference.BindAssetReference(widgetRoot,parent:parentUI.AssetReference);
+ if (AssetReference == null)
+ {
+ AssetReference = AssetReference.BindAssetReference(widgetRoot,parent:parentUI.AssetReference);
+ }
RestChildCanvas(parentUI);
parent = parentUI;
Parent.ListChild.Add(this);
@@ -178,20 +205,23 @@ namespace TEngine
{
return false;
}
- gameObject = go;
rectTransform = go.GetComponent();
+ gameObject = go;
Log.Assert(rectTransform != null, $"{go.name} ui base element need to be RectTransform");
return true;
}
protected void RestChildCanvas(UIBase parentUI)
{
+ if (parentUI == null || parentUI.gameObject == null)
+ {
+ return;
+ }
Canvas parentCanvas = parentUI.gameObject.GetComponentInParent