mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Update ScriptGenerator.cs
This commit is contained in:
@@ -9,46 +9,30 @@ namespace TEngine.Editor.UI
|
|||||||
{
|
{
|
||||||
private const string Gap = "/";
|
private const string Gap = "/";
|
||||||
|
|
||||||
[MenuItem("GameObject/ScriptGenerator/UIProperty", priority = 49)]
|
[MenuItem("GameObject/ScriptGenerator/UIProperty", priority = 41)]
|
||||||
public static void MemberProperty()
|
public static void MemberProperty()
|
||||||
{
|
{
|
||||||
Generate(false);
|
Generate(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[MenuItem("GameObject/ScriptGenerator/UIProperty UniTask", priority = 49)]
|
[MenuItem("GameObject/ScriptGenerator/UIProperty UniTask", priority = 43)]
|
||||||
public static void MemberPropertyUniTask()
|
public static void MemberPropertyUniTask()
|
||||||
{
|
{
|
||||||
Generate(false, true);
|
Generate(false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[MenuItem("GameObject/ScriptGenerator/UIPropertyAndListener", priority = 49)]
|
[MenuItem("GameObject/ScriptGenerator/UIPropertyAndListener", priority = 42)]
|
||||||
public static void MemberPropertyAndListener()
|
public static void MemberPropertyAndListener()
|
||||||
{
|
{
|
||||||
Generate(true);
|
Generate(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[MenuItem("GameObject/ScriptGenerator/UIPropertyAndListener UniTask", priority = 49)]
|
[MenuItem("GameObject/ScriptGenerator/UIPropertyAndListener UniTask", priority = 44)]
|
||||||
public static void MemberPropertyAndListenerUniTask()
|
public static void MemberPropertyAndListenerUniTask()
|
||||||
{
|
{
|
||||||
Generate(true, true);
|
Generate(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[MenuItem("GameObject/ScriptGenerator/UISwitchGroup", priority = 49)]
|
|
||||||
public static void UISwitchGroup()
|
|
||||||
{
|
|
||||||
var root = Selection.activeTransform;
|
|
||||||
if (root == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var content = SwitchGroupGenerator.Instance.Process(root);
|
|
||||||
TextEditor te = new TextEditor();
|
|
||||||
te.text = content;
|
|
||||||
te.SelectAll();
|
|
||||||
te.Copy();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void Generate(bool includeListener, bool isUniTask = false)
|
private static void Generate(bool includeListener, bool isUniTask = false)
|
||||||
{
|
{
|
||||||
var root = Selection.activeTransform;
|
var root = Selection.activeTransform;
|
||||||
@@ -76,7 +60,7 @@ namespace TEngine.Editor.UI
|
|||||||
strFile.Append("using TEngine;\n\n");
|
strFile.Append("using TEngine;\n\n");
|
||||||
strFile.Append("namespace GameMain\n");
|
strFile.Append("namespace GameMain\n");
|
||||||
strFile.Append("{\n");
|
strFile.Append("{\n");
|
||||||
strFile.Append("\tclass " + root.name + " : UIFormLogic\n");
|
strFile.Append("\tclass " + root.name + " : UIWindow\n");
|
||||||
strFile.Append("\t{\n");
|
strFile.Append("\t{\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,7 +167,6 @@ namespace TEngine.Editor.UI
|
|||||||
{ "m_slider", "Slider" },
|
{ "m_slider", "Slider" },
|
||||||
{ "m_group", "ToggleGroup" },
|
{ "m_group", "ToggleGroup" },
|
||||||
{ "m_curve", "AnimationCurve" },
|
{ "m_curve", "AnimationCurve" },
|
||||||
{ "m_fightWidget", "CommonFightWidget" },
|
|
||||||
{ "m_canvasGroup", "CanvasGroup" },
|
{ "m_canvasGroup", "CanvasGroup" },
|
||||||
#if ENABLE_TEXTMESHPRO
|
#if ENABLE_TEXTMESHPRO
|
||||||
{"m_tmp","TextMeshProUGUI"},
|
{"m_tmp","TextMeshProUGUI"},
|
||||||
@@ -216,18 +199,18 @@ namespace TEngine.Editor.UI
|
|||||||
switch (varType)
|
switch (varType)
|
||||||
{
|
{
|
||||||
case "Transform":
|
case "Transform":
|
||||||
strBind.Append(string.Format("\t\t\t{0} = FindChild(\"{1}\");\n", varName, varPath));
|
strBind.Append($"\t\t\t{varName} = FindChild(\"{varPath}\");\n");
|
||||||
break;
|
break;
|
||||||
case "GameObject":
|
case "GameObject":
|
||||||
strBind.Append(string.Format("\t\t\t{0} = FindChild(\"{1}\").gameObject;\n", varName, varPath));
|
strBind.Append($"\t\t\t{varName} = FindChild(\"{varPath}\").gameObject;\n");
|
||||||
break;
|
break;
|
||||||
case "AnimationCurve":
|
case "AnimationCurve":
|
||||||
strBind.Append(string.Format("\t\t\t{0} = FindChildComponent<AnimCurveObject>(\"{1}\").m_animCurve;\n", varName, varPath));
|
strBind.Append($"\t\t\t{varName} = FindChildComponent<AnimCurveObject>(\"{varPath}\").m_animCurve;\n");
|
||||||
break;
|
break;
|
||||||
case "RichItemIcon":
|
case "RichItemIcon":
|
||||||
case "CommonFightWidget":
|
case "CommonFightWidget":
|
||||||
case "PlayerHeadWidget":
|
case "PlayerHeadWidget":
|
||||||
strBind.Append(string.Format("\t\t\t{0} = CreateWidgetByType<{1}>(\"{2}\");\n", varName, varType, varPath));
|
strBind.Append($"\t\t\t{varName} = CreateWidgetByType<{varType}>(\"{varPath}\");\n");
|
||||||
break;
|
break;
|
||||||
case "RedNoteBehaviour":
|
case "RedNoteBehaviour":
|
||||||
case "TextButtonItem":
|
case "TextButtonItem":
|
||||||
@@ -235,16 +218,16 @@ namespace TEngine.Editor.UI
|
|||||||
case "UIActorWidget":
|
case "UIActorWidget":
|
||||||
case "UIEffectWidget":
|
case "UIEffectWidget":
|
||||||
case "UISpineWidget":
|
case "UISpineWidget":
|
||||||
strBind.Append(string.Format("\t\t\t{0} = CreateWidget<{1}>(\"{2}\");\n", varName, varType, varPath));
|
strBind.Append($"\t\t\t{varName} = CreateWidget<{varType}>(\"{varPath}\");\n");
|
||||||
break;
|
break;
|
||||||
case "ActorNameBinderText":
|
case "ActorNameBinderText":
|
||||||
strBind.Append(string.Format("\t\t\t{0} = FindTextBinder(\"{1}\");\n", varName, varPath));
|
strBind.Append($"\t\t\t{varName} = FindTextBinder(\"{varPath}\");\n");
|
||||||
break;
|
break;
|
||||||
case "ActorNameBinderEffect":
|
case "ActorNameBinderEffect":
|
||||||
strBind.Append(string.Format("\t\t\t{0} = FindEffectBinder(\"{1}\");\n", varName, varPath));
|
strBind.Append($"\t\t\t{varName} = FindEffectBinder(\"{varPath}\");\n");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
strBind.Append(string.Format("\t\t\t{0} = FindChildComponent<{1}>(\"{2}\");\n", varName, varType, varPath));
|
strBind.Append($"\t\t\t{varName} = FindChildComponent<{varType}>(\"{varPath}\");\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,29 +236,29 @@ namespace TEngine.Editor.UI
|
|||||||
string varFuncName = GetBtnFuncName(varName);
|
string varFuncName = GetBtnFuncName(varName);
|
||||||
if (isUniTask)
|
if (isUniTask)
|
||||||
{
|
{
|
||||||
strOnCreate.Append(string.Format("\t\t\t{0}.onClick.AddListener(UniTask.UnityAction({1}));\n", varName, varFuncName));
|
strOnCreate.Append($"\t\t\t{varName}.onClick.AddListener(UniTask.UnityAction({varFuncName}));\n");
|
||||||
strCallback.Append(string.Format("\t\tprivate async UniTaskVoid {0}()\n", varFuncName));
|
strCallback.Append($"\t\tprivate async UniTaskVoid {varFuncName}()\n");
|
||||||
strCallback.Append("\t\t{\n await UniTask.Yield();\n\t\t}\n");
|
strCallback.Append("\t\t{\n await UniTask.Yield();\n\t\t}\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
strOnCreate.Append(string.Format("\t\t\t{0}.onClick.AddListener({1});\n", varName, varFuncName));
|
strOnCreate.Append($"\t\t\t{varName}.onClick.AddListener({varFuncName});\n");
|
||||||
strCallback.Append(string.Format("\t\tprivate void {0}()\n", varFuncName));
|
strCallback.Append($"\t\tprivate void {varFuncName}()\n");
|
||||||
strCallback.Append("\t\t{\n\t\t}\n");
|
strCallback.Append("\t\t{\n\t\t}\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (varType == "Toggle")
|
else if (varType == "Toggle")
|
||||||
{
|
{
|
||||||
string varFuncName = GetToggleFuncName(varName);
|
string varFuncName = GetToggleFuncName(varName);
|
||||||
strOnCreate.Append(string.Format("\t\t\t{0}.onValueChanged.AddListener({1});\n", varName, varFuncName));
|
strOnCreate.Append($"\t\t\t{varName}.onValueChanged.AddListener({varFuncName});\n");
|
||||||
strCallback.Append(string.Format("\t\tprivate void {0}(bool isOn)\n", varFuncName));
|
strCallback.Append($"\t\tprivate void {varFuncName}(bool isOn)\n");
|
||||||
strCallback.Append("\t\t{\n\t\t}\n");
|
strCallback.Append("\t\t{\n\t\t}\n");
|
||||||
}
|
}
|
||||||
else if (varType == "Slider")
|
else if (varType == "Slider")
|
||||||
{
|
{
|
||||||
string varFuncName = GetSliderFuncName(varName);
|
string varFuncName = GetSliderFuncName(varName);
|
||||||
strOnCreate.Append(string.Format("\t\t\t{0}.onValueChanged.AddListener({1});\n", varName, varFuncName));
|
strOnCreate.Append($"\t\t\t{varName}.onValueChanged.AddListener({varFuncName});\n");
|
||||||
strCallback.Append(string.Format("\t\tprivate void {0}(float value)\n", varFuncName));
|
strCallback.Append($"\t\tprivate void {varFuncName}(float value)\n");
|
||||||
strCallback.Append("\t\t{\n\t\t}\n");
|
strCallback.Append("\t\t{\n\t\t}\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -304,33 +287,13 @@ namespace TEngine.Editor.UI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SwitchGroupGeneratorHelper : EditorWindow
|
|
||||||
{
|
|
||||||
[MenuItem("GameObject/ScriptGenerator/AboutSwitchGroup", priority = 50)]
|
|
||||||
public static void About()
|
|
||||||
{
|
|
||||||
GetWindow(typeof(SwitchGroupGeneratorHelper), false, "AboutSwitchGroup");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Awake()
|
|
||||||
{
|
|
||||||
minSize = new Vector2(400, 600);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void OnGUI()
|
|
||||||
{
|
|
||||||
GUILayout.BeginVertical();
|
|
||||||
GUILayout.Label(SwitchGroupGenerator.CONDITION + ":\t" + "SwitchTabItem[]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class SwitchGroupGenerator
|
public class SwitchGroupGenerator
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
遍历子节点,找到所有名为 m_switchGroup 开始的节点,输出该节点
|
遍历子节点,找到所有名为 m_switchGroup 开始的节点,输出该节点
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public const string CONDITION = "m_switchGroup";
|
private const string Condition = "m_switchGroup";
|
||||||
|
|
||||||
public static readonly SwitchGroupGenerator Instance = new SwitchGroupGenerator();
|
public static readonly SwitchGroupGenerator Instance = new SwitchGroupGenerator();
|
||||||
|
|
||||||
@@ -349,7 +312,7 @@ namespace TEngine.Editor.UI
|
|||||||
|
|
||||||
public void Collect(Transform node, List<Transform> nodeList)
|
public void Collect(Transform node, List<Transform> nodeList)
|
||||||
{
|
{
|
||||||
if (node.name.StartsWith(CONDITION))
|
if (node.name.StartsWith(Condition))
|
||||||
{
|
{
|
||||||
nodeList.Add(node);
|
nodeList.Add(node);
|
||||||
return;
|
return;
|
||||||
@@ -363,10 +326,10 @@ namespace TEngine.Editor.UI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Process(Transform root, Transform groupTf)
|
private string Process(Transform root, Transform groupTf)
|
||||||
{
|
{
|
||||||
var parentPath = GetPath(root, groupTf);
|
var parentPath = GetPath(root, groupTf);
|
||||||
var _name = groupTf.name;
|
var name = groupTf.name;
|
||||||
var sbd = new StringBuilder(@"
|
var sbd = new StringBuilder(@"
|
||||||
var _namePath = ""#parentPath"";
|
var _namePath = ""#parentPath"";
|
||||||
var _nameTf = FindChild(_namePath);
|
var _nameTf = FindChild(_namePath);
|
||||||
@@ -378,7 +341,7 @@ for (var i = 0; i < childCnt; i++)
|
|||||||
var child = _nameTf.GetChild(i);
|
var child = _nameTf.GetChild(i);
|
||||||
_name[i] = CreateWidget<SwitchTabItem>(_namePath + ""/"" + child.name);
|
_name[i] = CreateWidget<SwitchTabItem>(_namePath + ""/"" + child.name);
|
||||||
}");
|
}");
|
||||||
sbd.Replace("_name", _name);
|
sbd.Replace("_name", name);
|
||||||
sbd.Replace("#parentPath", parentPath);
|
sbd.Replace("#parentPath", parentPath);
|
||||||
return sbd.ToString();
|
return sbd.ToString();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user