一、 首先你得先清楚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(, );
//定义控件大小
rtr.sizeDelta = new Vector2(, );
//事件添加
NewButton.onClick.AddListener(ButtonClicked);

Unity UGUI动态生成控件的更多相关文章

  1. Silverlight动态生成控件实例

    刚学习Silverlight,做了一个动态创建控件的实例 实现结果:根据已有的控件类名称,得到控件的实例化对象 实现思路1:就是定义一个模板文件,将类名做为参数,在silverlight中使用Srea ...

  2. Asp.net web form 动态生成控件的注意事项

    Asp.net页面生命周期 页面初始化          Page_Init   加载View State      LoadViewState    回发数据处理      LoadPostData ...

  3. Asp.net中使用文本框的值动态生成控件的方法

    这篇文章主要介绍了Asp.net中使用文本框的值动态生成控件的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 看到一个网友,有论坛上问及,动态的生成checkbox控件,在文本框中输入一个“花 ...

  4. WPF: WrapPanel 容器的数据绑定(动态生成控件、遍历)

    原文:WPF: WrapPanel 容器的数据绑定(动态生成控件.遍历) 问题:        有一些CheckBox需要作为选项添加到页面上,但是数目不定.而为了方便排版,我选择用WrapPanel ...

  5. Winforn中使用代码动态生成控件

    场景 有时候需要根据配置文件在窗体中使用代码动态生成控件. 比如读取xml配置文件中的节点数量,然后在窗体中生成指定数量的RadioGroup控件. 实现 新建一个窗体,在窗体的加载完之后的事件中 p ...

  6. (五)ASP.NET中动态生成控件

    今天被问到如何在ASP.NET 页面中动态创建一批控件,并且希望在后续代码中能访问到这些动态创建的控件.我用下面的例子来解释这个问题 ================================= ...

  7. (四)动态生成控件,点击button添加控件

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. c# winform动态生成控件与获取动态控件输入的值

    差不多有2年没有写winform程序,一直都是写bs.最近项目需要,又开始着手写一个小功能的winform程序,需要动态获取xml文件的节点个数,生成跟节点个数一样的textbox, 最后还要获取操作 ...

  9. 周末充电之WPF(三 ) .后台动态生成控件

    布局 -连连看: 代码: private void Window_Loaded_1(object sender, RoutedEventArgs e) { //动态创建行 ; i < ; i++ ...

随机推荐

  1. [Ubuntu] sudo apt-get update指令执行失败

    系统:Ubuntu 16.04 LTS 安装软件前执行 sudo apt-get update 更新,但是提示失败如下: 网上搜索后,因为连接不到 US 的服务器,所以更新失败,需要在系统设置中将源服 ...

  2. 使用java写js中类似setTimeout的代码

    javascript目前已经是一门相当主流的编程语言了,它的异步IO特定项目其他编程语言来说,大大减少了cpu在线程切换方面的速度.实现了单线程高并发的奇迹.而java作为老牌编程语言,在很多的项目中 ...

  3. 阿里云 -- Go module 代理 镜像

    简介 go module公共代理仓库,代理并缓存go模块.你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建 地址 https://mirrors.aliyun.com/go ...

  4. vim 操作命令大全(转)

    1. 关于Vim vim是我最喜欢的编辑器,也是Linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...

  5. LC 990. Satisfiability of Equality Equations

    Given an array equations of strings that represent relationships between variables, each string equa ...

  6. Android:StateMachine 之 WifiStateMachine

    一.状态图: 二.代码分析: \frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiStateMachine.java 1 ...

  7. 算法习题---4-3黑白棋(UVa220)

    一:题目 系统提示当前旗手W/B(白/黑)下子,例如W下子,那么W下的位置必须是夹住黑色棋子的位置才可以. 夹住方式:横向.竖向.斜向 注意落子后将夹住的黑棋吞噬变为白棋 (一)题目详解 .棋盘以数组 ...

  8. 123457123456#0#-----com.threeapp.BabyLeaningEnglish01----精品儿童学英语

    com.threeapp.BabyLeaningEnglish01----精品儿童学英语

  9. iOS 将一个UIImage缩放到指定Size

    这方法挺实用的,直接调用就可以得到想要的size. //将一个UIImage缩放变换到指定Size -(UIImage*) OriginImage:(UIImage *)image scaleToSi ...

  10. linux vim基本操作

    vim 是一款功能强大的文本编辑器, 默认有三种模式: 命令模式, 插入模式, 编辑模式, 使用# vim file 打开一个文件时,默认进入命令模式, 不同模式直接的切换如下    a. 命令模式切 ...