zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    Hashtable源码分析
    ConcurrentHashMap1.7源码分析
    JDK1.8新特性
    回炉Spring--Bean生命周期及AOP
    @DateTimeFormat 和 @JsonFormat 注解
    面向切面编程-日志切面应用及MDC使用
    maven 多模块开发
    maven 安装
    ztree树节点重叠问题
    Java问题解读系列之IO相关---Java深拷贝和浅拷贝
  • 原文地址:https://www.cnblogs.com/bearhb/p/11478255.html
Copyright © 2011-2022 走看看