コード例 #1
0
    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));
        }
    }
コード例 #2
0
ファイル: UGUIGenUtil.cs プロジェクト: YESshowMeCode/MyGame
    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);
    }
コード例 #3
0
    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());
    }
コード例 #4
0
ファイル: UGUIGenUtil.cs プロジェクト: YESshowMeCode/MyGame
    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);
    }