惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
C
Check Point Blog
Vercel News
Vercel News
Y
Y Combinator Blog
G
Google Developers Blog
P
Proofpoint News Feed
WordPress大学
WordPress大学
MongoDB | Blog
MongoDB | Blog
博客园 - 司徒正美
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
L
LangChain Blog
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
博客园_首页
B
Blog RSS Feed
The Cloudflare Blog
MyScale Blog
MyScale Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog

博客园 - 阿土仔

Unity 2019中对象池的用法 Unity场景间数据传递方法 UGUI防止穿透和判断点击的是否是UI Unity中的Character Controller Unity插件研究-EasyTouch V5 Unity塔防游戏的创建 Unity性能优化-DrawCall Unity性能优化-对象池 Unity性能优化-音频设置 Unity性能优化-遮挡剔除 Unity异步加载场景 Unity 协程 HBuilder git使用-分工合作 HBuilder git合作-代码同步 微信小程序开发-窗体设置 HBuilder git合作-从Git Hub Clone项目 HBuilder git合作-上传项目到Git Hub 微信小程序开发-tabbar组件 HBuilder git使用-建立仓库,邀请用户
Unity UGUI动态生成控件
阿土仔 · 2019-09-06 · via 博客园 - 阿土仔

       一、 首先你得先清楚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);