• 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);
  • 相关阅读:
    创建基于 SQL Server 表的外部内容类型
    symfony入门之 app/console 命令
    git上传代码到github
    ubuntu下配置apache虚拟主机
    ubuntu14.04下解决编辑器无法输入中文
    PHP把域名解析为站点IP
    mysql平常总结
    php防sql注入函数
    常用的正则检测总结
    redis缓存注意事项
  • 原文地址:https://www.cnblogs.com/bearhb/p/11478255.html
Copyright © 2020-2023  润新知