Unity UGUI动态生成控件

       一、 首先你得先清楚RectTransform组件的一些程序控制  

        1. 先得到UGUI控件上面的RectTransform组件

RectTransform rtr = gameObject.GetComponent<RectTransform>();

          2.  设置top和bottom值

rtr.offsetMax = new Vector2(rtr.offsetMax.x, top);
rtr.offsetMin = new Vector2(rtr.offsetMin.x, bottom);

           3. 设置width,height

rtr.sizeDelta = new Vector2(width, height);

           4.  设置pos

rtr.anchoredPosition3D = new Vector3(posx,posy,posz);

rtr.anchoredPosition = new Vector2(posx,posy);

           二、动态生成Button实例

          1. 目标是要生成这样一个Button,这是手工设置的方式:

                    

             2. 现在是代码方式:

        canvas = GameObject.Find("Canvas").transform;
        if (ButtonPrefab)
        {
            NewButton = (Button)Instantiate(ButtonPrefab);
            NewButton.transform.SetParent(canvas);
            RectTransform rtr = NewButton.GetComponent<RectTransform>();
            //设置父级基准位置
            rtr.anchorMin = new Vector2(0.5f,0.5f);
            rtr.anchorMax = new Vector2(0.5f, 0.5f);
            //定义控件自身定位点位置
            rtr.pivot = new Vector2(0.5f, 0.5f);
            //定义控件定位点相对基准位置的偏移
            rtr.anchoredPosition = new Vector2(0, 0);
            //定义控件大小
            rtr.sizeDelta = new Vector2(200, 80);
            //事件添加
            NewButton.onClick.AddListener(ButtonClicked);

 

转载于:https://www.cnblogs.com/bearhb/p/11478255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值