Skip to content

Commit 245edda

Browse files
committed
feat(UI编辑器): 添加对TextMeshPro组件的代码生成支持
在UGUI代码生成器中增加对TextMeshProUGUI、TMP_InputField和TMP_Dropdown组件的检测支持,同时更新程序集定义文件以包含TextMeshPro引用并添加条件编译定义ENABLE_UI_TEXT_MESH_PRO,使编辑器能够为使用TextMeshPro的UI组件生成正确的代码。
1 parent b3ba183 commit 245edda

2 files changed

Lines changed: 37 additions & 2 deletions

File tree

Editor/GameFrameX.UI.UGUI.Editor.asmdef

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
{
22
"name": "GameFrameX.UI.UGUI.Editor",
3+
"rootNamespace": "",
34
"references": [
45
"GameFrameX.Editor",
56
"GameFrameX.UI.Runtime",
67
"GameFrameX.UI.UGUI.Runtime",
7-
"GameFrameX.Runtime"
8+
"GameFrameX.Runtime",
9+
"Unity.TextMeshPro"
810
],
911
"includePlatforms": [
1012
"Editor"
@@ -15,6 +17,12 @@
1517
"precompiledReferences": [],
1618
"autoReferenced": true,
1719
"defineConstraints": [],
18-
"versionDefines": [],
20+
"versionDefines": [
21+
{
22+
"name": "com.unity.textmeshpro",
23+
"expression": "",
24+
"define": "ENABLE_UI_TEXT_MESH_PRO"
25+
}
26+
],
1927
"noEngineReferences": false
2028
}

Editor/UGUICodeGenerator.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
using System.Text;
3636
using GameFrameX.Runtime;
3737
using GameFrameX.UI.UGUI.Runtime;
38+
#if ENABLE_UI_TEXT_MESH_PRO
39+
using TMPro;
40+
#endif
3841
using UnityEditor;
3942
using UnityEngine;
4043
using UnityEngine.EventSystems;
@@ -460,6 +463,30 @@ private static string ConvertType(Transform transform)
460463
{
461464
return typeof(Image).FullName;
462465
}
466+
#if ENABLE_UI_TEXT_MESH_PRO
467+
component = transform.GetComponent<TextMeshProUGUI>();
468+
if (component != null)
469+
{
470+
return typeof(TextMeshProUGUI).FullName;
471+
}
472+
473+
component = transform.GetComponent<TMP_InputField>();
474+
if (component != null)
475+
{
476+
return typeof(TMP_InputField).FullName;
477+
}
478+
479+
component = transform.GetComponent<TMP_Dropdown>();
480+
if (component != null)
481+
{
482+
return typeof(TMP_Dropdown).FullName;
483+
}
484+
#endif
485+
var rectTransform = transform.GetComponent<RectTransform>();
486+
if (rectTransform != null)
487+
{
488+
return typeof(RectTransform).FullName;
489+
}
463490

464491
return typeof(Transform).FullName;
465492
}

0 commit comments

Comments
 (0)