Unity中锚点的动态设置
问题背景
在做签到系统时,需求给的效果图如下

效果图像这样,中间是模型,周围其他是签到框这样的布局,我想动态生成各个动态框,涉及到一个定位问题,锚点的设置(动态去设置每个item的位置)
实现方法
SetInsetAndSizeFromParentEdge();
此方法属于RectTransform里面得函数,(如果想更多了解RectTransform的话前面我有分析,https://www.cnblogs.com/answer-yj/p/10623304.html),这个函数有三个参数,第一个参数RectTransform.Edge.Left,是指左边的边界,第三个参数是图片的尺寸(有些地方说这是长度,但是我觉得有可能长有可能宽,需要看RectTransform.Edge的值),第二个参数是离边界的距离。注意第三个参数,这是图片尺寸,以第一个参数决定是图片的哪个尺寸
实现代码
for (int i = ; i < ; i++)
{
GameObject go = Instantiate(Resources.Load<GameObject>("Prefab"));
go.transform.SetParent(GameObject.Find("GameObject").transform);
go.transform.localPosition = Vector3.zero;
RectTransform rectTransform = go.GetComponent<RectTransform>();
switch (i)
{
case :
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, , );
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, , );
break;
case :
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, , );
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, , );
break;
case :
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, , );
break;
case :
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, , );
break;
case :
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, , );
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, , );
break;
case :
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, , );
break;
case :
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, , );
rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, , );
break;
}
}
就这样实现了所需布局。
(新手上路,欢迎指正)
Unity中锚点的动态设置的更多相关文章
- 实现ScrollView中包含ListView,动态设置ListView的高度
ScrollView 中包含 ListView 的问题 : ScrollView和ListView会冲突,会导致ListView显示不全 <?xml version="1.0" ...
- vue中渲染页面,动态设置颜色
for循环中动态设置页面的图标或者字体颜色与循环中且套循环 :style="{'color':items.color}" 案例代码: html中 <div class=&qu ...
- 微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法
前段时间开发了一款微信小程序,运行了也几个月了,在index.js中的onLoad生命周期里获取app.js中onLaunch生命周期中在接口里动态设置的globalData一直没有问题,结果昨天就获 ...
- android动态设置组件LayoutParams
开发中经常用到动态设置组件的LayoutParams,之前开发遇到的问题如下: LinearLayout.LayoutParams params = new LinearLayout.LayoutPa ...
- 在Unity中接入Xbox360手柄
提要 本文主要介绍了怎样在Unity中接入Xbox360的手柄. 当我们调Input.GetAxis("Horizontal"),我们调了什么 Unity中全部关于输入的设置都在E ...
- Unity 中动态修改碰撞框(位置,大小,方向)
在Unity中,玩家处于不同的状态,要求的碰撞框的 位置/大小/方向 会有所改变,怎么动态的修改碰撞框呢? 下面是Capsure Collider(胶囊体)的修改: CapsuleCollider.d ...
- Unity中动态创建Mesh
什么是Mesh? Mesh是指的模型的网格,3D模型是由多边形拼接而成,而多边形实际上又是由多个三角形拼接而成的.即一个3D模型的表面其实是由多个彼此相连的三角面构成.三维空间中,构成这些三角形的点和 ...
- Unity中调用Windows窗口句柄以及根据需求设置并且解决扩展屏窗体显示错乱/位置错误的Bug
问题背景: 现在在搞PC端应用开发,我们开发中需要调用系统的窗口以及需要最大化最小化,缩放窗口拖拽窗口,以及设置窗口位置,去边框等功能 解决根据: 使用user32.dll解决 具体功能: Unity ...
- Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定). 这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户 ...
随机推荐
- C#语法相比其它语言比较独特的地方
C#语法相比其它语言比较独特的地方(一) 本文讲解了switch语句可以用来测试string型的对象.多维数组.foreach语句.索引器和Property等内容 1,switch语句可以用来测试st ...
- nginx的限流问题
nginx的限流问题 http{ limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;server{ listen 8080 ...
- 本机Jenkins的使用
1.启动jenkins: 命令:java -jar D:\toolspackage\jenkins\jenkins.war 打开jenkins网页:http://localhost:8080/ 2. ...
- python学习日记(正则表达式)
定义 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Pyth ...
- Java代码的编译与反编译那些事儿
原文:Java代码的编译与反编译那些事儿 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language) ...
- react 生命周期函数介绍
constructor():构造函数 执行:组件加载钱最先调用一次,仅调用一次. 作用:定义状态机变量. 注意:第一个语句必须为super(), 否则会报错:'this' is not allowed ...
- [oracle]查询一个表中数据的插入时间
select to_char(scn_to_timestamp(ORA_ROWSCN),'yyyy-mm-dd hh24:mi:ss') insert_time from tablename;
- [CQOI2014]危桥
题目描述 Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双 向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次. ...
- MySQL架构备份之双机热备
M--S架构:实现双机热备(AB复制) 1.可以降低master读压力 2.可以对数据库做“热备”,热备只能解决硬件master硬件故障,软件故障等重大故障问题,但无法解决人为误操作导致的逻辑故障(列 ...
- SVG矢量图学习实例
从W3school上学习了一下SVG矢量图形,感觉和HTML相比还是有一些新的元素和属性的,一时间不能全部记住,特此留下笔记,供遗忘时作为参考 <!DOCTYPE html> <!- ...