protected override void processBeforeIn(UGUIProcessData data) { UGUIGenUtil.InitNormalClassInfo(data.classInfo, GetInitClassName(data.GameObjectName, data.NodeTypeStr)); data.classInfo.parent = "UGUIRefNode"; data.classInfo.namespaceStr = UGUIGenUtil.GetNamespaceByTwoWords(data.BaseGameObjectName) + "Ref"; UGUIGenUtil.GetAwakeMethod(data.classInfo); }
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 override string GetInitClassName(string objname, string nodeTypeStr) { string suffix = null; if (nodeTypeStr != null && nodeTypeStr != "") { suffix = nodeTypeStr; } else { suffix = "BaseNode"; } return(Class_Prefix + UGUIGenUtil.GetNodeNameNoSuffixNum(objname) + suffix); }
protected override void processAfterIn(UGUIProcessData data) { GenClassInfo genClassInfo = data.classInfo; UGUIGenUtil.AddErrMsgInResetMethod(genClassInfo); if (data.classInfo.name.Contains("GNode")) { genClassInfo.namespaceStr = "GNode"; } else { // genClassInfo.namespaceStr = UGUIini } }
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,请重新生成代码\");"); }
private static GenClassInfo CreateInitedClassInfo(GenClassInfo ci, string name) { ci.parent = "UGUIRefNode"; UGUIGenUtil.InitNormalClassInfo(ci, name); return(ci); }
protected override void processAfterIn(UGUIProcessData data) { UGUIGenUtil.AddOrGetResetMethod(data.classInfo); }