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
        }
    }
Esempio n. 5
0
    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);
 }