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 void AddErrMsgInResetMethod(GenClassInfo genClassInfo) { var awakeMethod = UGUIGenUtil.AddOrGetResetMethod(genClassInfo); List <GenFieldInfo> props = new List <GenFieldInfo>(); for (int i = 0; i < genClassInfo.fields.Count; i++) { if (genClassInfo.fields[i].type != "UIDele.Dele") { props.Add(genClassInfo.fields[i]); } } if (props.Count == 0) { return; } StringBuilder sb = new StringBuilder(); sb.Append("if("); bool first = true; foreach (var prop in props) { if (first) { first = false; } else { sb.Append("||"); } sb.Append(prop.name + "== null"); } sb.Append(")"); awakeMethod.codeLines.Add(sb.ToString()); awakeMethod.codeLines.Add(" Debug.LogError(\"节点有null,请重新生成代码\");"); }
protected override void processAfterIn(UGUIProcessData data) { UGUIGenUtil.AddOrGetResetMethod(data.classInfo); }