Skip to content

Commit 9d70b42

Browse files
committed
修正脚本生成失败
添加 demo -> innerGroup
1 parent b4e091c commit 9d70b42

21 files changed

+879
-28
lines changed

Assets/Core/GenCode/Editor/ComponetCode/ComponentCode.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,20 @@ protected MethodDeclaration AwakeNode
3939
{
4040
if (_awakeNode == null)
4141
{
42-
_awakeNode = GenCodeUtil.GetAwakeMethod(classNode);
42+
var baseTypeName = GenCodeUtil.supportBaseTypes[rule.baseTypeIndex];
43+
_awakeNode = GenCodeUtil.GetAwakeMethod(classNode, baseTypeName);
4344
}
4445
return _awakeNode;
4546
}
4647
}
4748

4849
protected TypeDeclaration classNode;
50+
protected GenCodeRule rule;
4951

50-
public void SetContext(TypeDeclaration classNode)
52+
public void SetContext(TypeDeclaration classNode,GenCodeRule rule)
5153
{
5254
this.classNode = classNode;
55+
this.rule = rule;
5356
_initComponentNode = null;
5457
_propBindingsNode = null;
5558
}
@@ -200,7 +203,14 @@ protected void CompleteMethod(BindingEvent item)
200203
List<ParameterDeclaration> arguments = new List<ParameterDeclaration>();
201204
var parameters = parameter.ParameterType.GetGenericArguments();
202205
int count = 0;
203-
var oldMethod = typeof(PanelBase).Assembly.GetType(classNode.Name).GetMethod(item.bindingSource, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic);
206+
207+
var oldType = typeof(PanelBase).Assembly.GetType(classNode.Name);
208+
System.Reflection.MethodInfo oldMethod = null;
209+
if (oldType != null)
210+
{
211+
oldMethod = oldType.GetMethod(item.bindingSource, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic);
212+
}
213+
204214
System.Reflection.ParameterInfo[] oldParamters = null;
205215

206216
if (oldMethod != null)
@@ -215,7 +225,8 @@ protected void CompleteMethod(BindingEvent item)
215225
}
216226
}
217227

218-
bool sameFunc = true;
228+
bool sameFunc = parameters.Length > 0;
229+
219230
for (int i = 0; i < parameters.Length; i++)
220231
{
221232
var para = parameters[i];

Assets/Core/GenCode/Editor/GenCodeUtil.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public static void AnalysisComponent(MonoBehaviour component, List<ComponentItem
126126
}
127127
}
128128
}
129-
AnalysisBindings(component, components);
129+
AnalysisBindings(component, components, new GenCodeRule());
130130
}
131131

132132
/// <summary>
@@ -148,7 +148,7 @@ public static void CreateScript(GameObject go, List<ComponentItem> components, G
148148
var classNode = tree.Descendants.OfType<TypeDeclaration>().Where(x => x.Name == className).First();
149149

150150
CreateMemberFields(classNode, needAdd);
151-
BindingInfoMethods(classNode, needAdd, rule.bindingAble);
151+
BindingInfoMethods(classNode, needAdd, rule);
152152
SortClassMembers(classNode);
153153

154154
var prefabPath = AssetDatabase.GetAssetPath(go);
@@ -257,13 +257,14 @@ public static MethodDeclaration GetInitComponentMethod(TypeDeclaration classNode
257257
return InitComponentsNode;
258258
}
259259

260-
public static MethodDeclaration GetAwakeMethod(TypeDeclaration classNode)
260+
public static MethodDeclaration GetAwakeMethod(TypeDeclaration classNode,string baseTypeName)
261261
{
262262
var awakeNode = classNode.Descendants.OfType<MethodDeclaration>().Where(x => x.Name == "Awake").FirstOrDefault();
263263

264264
if (awakeNode == null)
265265
{
266-
var type = typeof(PanelBase).Assembly.GetType(classNode.Name);
266+
var type = typeof(PanelBase).Assembly.GetType(baseTypeName);
267+
267268
awakeNode = new MethodDeclaration();
268269
awakeNode.Name = "Awake";
269270
awakeNode.ReturnType = new ICSharpCode.NRefactory.CSharp.PrimitiveType("void");
@@ -539,12 +540,12 @@ private static void CreateMemberFields(TypeDeclaration classNode, ComponentItem[
539540
/// </summary>
540541
/// <param name="classNode"></param>
541542
/// <param name="components"></param>
542-
private static void BindingInfoMethods(TypeDeclaration classNode, ComponentItem[] components, bool bindingAble)
543+
private static void BindingInfoMethods(TypeDeclaration classNode, ComponentItem[] components, GenCodeRule rule)
543544
{
544-
componentCoder.SetContext(classNode);
545+
componentCoder.SetContext(classNode,rule);
545546
foreach (var component in components)
546547
{
547-
componentCoder.CompleteCode(component, bindingAble);
548+
componentCoder.CompleteCode(component, rule.bindingAble);
548549
}
549550
}
550551

@@ -553,12 +554,12 @@ private static void BindingInfoMethods(TypeDeclaration classNode, ComponentItem[
553554
/// </summary>
554555
/// <param name="component"></param>
555556
/// <param name="components"></param>
556-
private static void AnalysisBindings(MonoBehaviour component, List<ComponentItem> components)
557+
private static void AnalysisBindings(MonoBehaviour component, List<ComponentItem> components,GenCodeRule rule)
557558
{
558559
var script = MonoScript.FromMonoBehaviour(component).text;
559560
var tree = new CSharpParser().Parse(script);
560561
var classNode = tree.Descendants.OfType<TypeDeclaration>().Where(x => x.Name == component.GetType().Name).FirstOrDefault();
561-
componentCoder.SetContext(classNode);
562+
componentCoder.SetContext(classNode,rule);
562563
componentCoder.AnalysisBinding(components);
563564
}
564565

Assets/Demo.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Demo/1.common.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Demo/1.common/Resource.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Demos.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Demos/CommonResrouces/PanelName.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,10 @@ public static string LuaPanel01 {
143143
return "LuaPanel01";
144144
}
145145
}
146+
147+
public static string InnerGroupTestPanel {
148+
get {
149+
return "InnerGroupTestPanel";
150+
}
151+
}
146152
}

Assets/Demos/Scenes/1.CommonPanel.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Demos/Scenes/1.CommonPanel/Prefabs/PopUpPanel.prefab

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ GameObject:
4646
- 222: {fileID: 22262116}
4747
- 114: {fileID: 11451738}
4848
m_Layer: 5
49-
m_Name: title
49+
m_Name: info
5050
m_TagString: Untagged
5151
m_Icon: {fileID: 0}
5252
m_NavMeshLayer: 0
@@ -101,6 +101,7 @@ MonoBehaviour:
101101
m_close: {fileID: 11430100}
102102
title: {fileID: 11407468}
103103
info: {fileID: 11451738}
104+
defultTitle: "\u6E29\u99A8\u63D0\u793A"
104105
onGet:
105106
m_PersistentCalls:
106107
m_Calls: []
@@ -162,7 +163,7 @@ MonoBehaviour:
162163
m_BestFit: 0
163164
m_MinSize: 10
164165
m_MaxSize: 40
165-
m_Alignment: 0
166+
m_Alignment: 4
166167
m_AlignByGeometry: 0
167168
m_RichText: 1
168169
m_HorizontalOverflow: 0
@@ -263,7 +264,7 @@ MonoBehaviour:
263264
m_BestFit: 0
264265
m_MinSize: 10
265266
m_MaxSize: 40
266-
m_Alignment: 0
267+
m_Alignment: 4
267268
m_AlignByGeometry: 0
268269
m_RichText: 1
269270
m_HorizontalOverflow: 0
@@ -345,10 +346,10 @@ RectTransform:
345346
m_Children: []
346347
m_Father: {fileID: 22479174}
347348
m_RootOrder: 0
348-
m_AnchorMin: {x: 0.5, y: 0.5}
349-
m_AnchorMax: {x: 0.5, y: 0.5}
350-
m_AnchoredPosition: {x: 0, y: 81}
351-
m_SizeDelta: {x: 160, y: 30}
349+
m_AnchorMin: {x: 0, y: 1}
350+
m_AnchorMax: {x: 1, y: 1}
351+
m_AnchoredPosition: {x: 0, y: -15}
352+
m_SizeDelta: {x: 0, y: 30}
352353
m_Pivot: {x: 0.5, y: 0.5}
353354
--- !u!224 &22416012
354355
RectTransform:
@@ -362,10 +363,10 @@ RectTransform:
362363
m_Children: []
363364
m_Father: {fileID: 22479174}
364365
m_RootOrder: 1
365-
m_AnchorMin: {x: 0.5, y: 0.5}
366-
m_AnchorMax: {x: 0.5, y: 0.5}
367-
m_AnchoredPosition: {x: 0, y: 10}
368-
m_SizeDelta: {x: 160, y: 30}
366+
m_AnchorMin: {x: 0, y: 0}
367+
m_AnchorMax: {x: 1, y: 1}
368+
m_AnchoredPosition: {x: 0, y: 0}
369+
m_SizeDelta: {x: 0, y: 0}
369370
m_Pivot: {x: 0.5, y: 0.5}
370371
--- !u!224 &22434606
371372
RectTransform:

Assets/Demos/Scenes/2.InnerGroup.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)