protected override void processIn(UGUIProcessData data) { var classInfo = data.classInfo; if (data.Nodetype == typeof(GenWordType)) { return; } var fieldInfo = UGUIGenUtil.AddPublicField(classInfo, data.ComponentName, data.NodeTypeStr + "_" + UGUIGenUtil.GetNodeName(data.GameObjectName)); var resetMethod = UGUIGenUtil.AddOrGetResetMethod(data.classInfo); StringBuilder sb = new StringBuilder(); sb.Append(fieldInfo.name); sb.Append(" = transform"); foreach (var node in data.Orders) { sb.Append(string.Format(".GetChild({0}}", node)); } sb.Append(string.Format(".GetComponent<{0}>();", data.ComponentName)); resetMethod.codeLines.Add(sb.ToString()); if (data.Nodetype == typeof(Button)) { var eventFieldInfo = UGUIGenUtil.AddPublicField(classInfo, "UIDele.Dele", "On" + UGUIGenUtil.GetNodeName(data.GameObjectName) + "Callback"); if (eventFieldInfo == null) { return; } GenMethodInfo clickMethod = new GenMethodInfo(); clickMethod.returnType = "void"; clickMethod.name = "On" + UGUIGenUtil.GetNodeName(data.GameObjectName) + "Click"; clickMethod.flags |= GenBindingFlags.Private; clickMethod.args.Add(new GenArgumentInfo() { name = "go", type = "GameObject" }); clickMethod.codeLines.Add(string.Format("if ({0} != null)", eventFieldInfo.name)); clickMethod.codeLines.Add(string.Format(" {0}()", eventFieldInfo.name)); classInfo.methods.Add(clickMethod.name, clickMethod); var openMethod = UGUIGenUtil.GetAwakeMethod(classInfo); openMethod.codeLines.Add(string.Format("UIEventListener_UGUI.Get({0}.gameObject).onClick = {1}", fieldInfo.name, clickMethod.name)); } }
public static GenMethodInfo GetAwakeMethod(GenClassInfo ci) { string name = "Awake"; GenMethodInfo methodInfo; if (!ci.methods.TryGetValue(name, out methodInfo)) { methodInfo = new GenMethodInfo(); methodInfo.name = name; methodInfo.returnType = "void"; ci.methods.Add(name, methodInfo); } return(methodInfo); }
string MethodHeadFmt(GenMethodInfo info) { StringBuilder sb = new StringBuilder(); if ((info.flags & GenBindingFlags.Public) != 0) { sb.Append("public "); } else if ((info.flags & GenBindingFlags.Protected) != 0) { sb.Append("protect "); } if ((info.flags & GenBindingFlags.Private) != 0) { sb.Append("private "); } if ((info.flags & GenBindingFlags.Override) != 0) { sb.Append("override "); } else if ((info.flags & GenBindingFlags.Static) != 0) { sb.Append("static "); } string reType = info.returnType; sb.Append(reType + " "); sb.Append(info.name); sb.Append("("); bool first = true; foreach (var arg in info.args) { if (!first) { sb.Append(","); } else { first = false; } sb.Append(arg.name); sb.Append(" "); sb.Append(arg.name); } sb.Append(")"); return(sb.ToString()); }
public static GenMethodInfo AddOrGetResetMethod(GenClassInfo ci) { string name = "Reset"; GenMethodInfo mi; if (!ci.methods.TryGetValue(name, out mi)) { GenMethodInfo awakeGenMethod = new GenMethodInfo(); awakeGenMethod.name = name; awakeGenMethod.returnType = "void"; ci.methods.Add(name, awakeGenMethod); mi = ci.methods[name]; } return(mi); }