Unity3D的UGUI布局锚点自动绑定关系
[MenuItem("CONTEXT/RectTransform/Auto")]
public static void AutoRectAnior()
{
Debug.Log("自适应锚点");
//获得当前设置UI
RectTransform rect = Selection.activeGameObject.GetComponent<RectTransform>();
//获取其父级
RectTransform parent = rect.parent.GetComponent<RectTransform>();
RectTransform canvas = rect.GetComponentInParent<Canvas>().GetComponent<RectTransform>();
if (!rect || ! parent || !canvas)
{
Debug.Log("自适应锚点失败,缺少对象!");
return;
}
Bounds rectBounds = RectTransformUtility.CalculateRelativeRectTransformBounds(canvas, rect);//计算src的包围盒
Bounds parentBounds = RectTransformUtility.CalculateRelativeRectTransformBounds(canvas, parent);//计算tar的包围盒
float cMinX = 0.5f, cMinY = 0.5f, cMaxX = 0.5f, cMaxY = 0.5f;
//获取设置UI的宽和高
float cWidth = rectBounds.size.x; //rect.sizeDelta.x * rect.localScale.x;
float cHight = rectBounds.size.y;//rect.sizeDelta.y * rect.localScale.y;
//获取设置UI父级的宽和高
float pWidth = parentBounds.size.x;//parent.sizeDelta.x * parent.localScale.x;
float pHight = parentBounds.size.y;//parent.sizeDelta.y * parent.localScale.y;
//重新计算锚点位置
cMinX = (pWidth / 2 - (cWidth * rect.pivot.x - rect.anchoredPosition.x)) / pWidth;
cMinY = (pHight / 2 - (cHight * rect.pivot.y - rect.anchoredPosition.y)) / pHight;
cMaxX = (pWidth / 2 + (cWidth * (1 - rect.pivot.x) + rect.anchoredPosition.x)) / pWidth;
cMaxY = (pHight / 2 + (cHight * (1 - rect.pivot.y) + rect.anchoredPosition.y)) / pHight;
//重新设置UI的锚点位置
rect.anchorMin = new Vector2(cMinX, cMinY);
rect.anchorMax = new Vector2(cMaxX, cMaxY);
//设置UI的相对距离
rect.offsetMax = new Vector2(0, 0);
rect.offsetMin = new Vector2(0, 0);
Debug.Log("自适应锚点成功!");
}
上述绑定代码未完善。。。后续完善
Unity3D的UGUI布局锚点自动绑定关系的更多相关文章
- Unity ugui Anchor锚点自动适配画布中的相对位置
本随笔参考了以下博客,在此基础上进行优化和改进: https://blog.csdn.net/qq_39640124/article/details/88284191 ugui中的Anchor预设如下 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(17)--布局和对话框自动适应大小的处理
在我自己的<Web开发框架>中,用了很多年的EasyUI,最新版本EasyUI为1.4.5,随着版本的更新,其很多功能得到了很大的完善和提高,同时也扩展了一些新的功能,以前在布局和对话框弹 ...
- 最新iOS 6 in Xcode4.5新特性——Storyboard和属性自动绑定
最新iOS 6 in Xcode4.5新特性编程之二(上)——Storyboard和属性自动绑定 从Xcode 4.3开始,Storyboard 就是iOS 5和iOS 6中令人兴奋的一个新特性,他将 ...
- 一个完全摆脱findViewById的自动绑定库
代码地址如下:http://www.demodashi.com/demo/13504.html 问题 先来看一个正常的写法: <?xml version="1.0" enco ...
- Unity3D中uGUI事件系统简述及使用方法总结
Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值.如下图所示: 先以PointerClick为例.这个是用于某点点击事件.其他事件都可 ...
- FlexiGrid 使用 全选、自动绑定
1.介绍 Flexigrid是一个类似于Ext Gird,但基于jQuery开发的Grid.它具有的功能包括:可以调整列宽,合并列标题,分页,排序,显示/隐藏表格等.Flexigrid显示的数据能够通 ...
- WinForm开发-界面控件到实体,实体到界面控件自动绑定
在WinForm开发中,我们是不是为绑定界面控件的数据而每个控件每个控件的赋值?在保存修改时是不是也是每个控件每个控件的赋值到实体中?字段一多,那简直就是噩梦.有没有像Web中那样方便的方法直接就自动 ...
- php 自动绑定di容器实现
<?php class Bim { public function doSth() { echo __METHOD__.PHP_EOL; } } class Bar { protected $b ...
- paip.提升效率---request自动绑定domain object
paip.提升效率---request自动绑定domain object #.keyword,subtitle关键字,子标题 ------------------------- 复制request属性 ...
随机推荐
- 使用pthread进行编程
使用pthread进行并行编程 进程与线程 进程是一个运行程序的实例:线程像一个轻量级的进程:在一个共享内存系统中,一个进程可以有多个线程 POSIX® Threads: 即 Pthreads,是一个 ...
- thinkphp--create()的使用方法(个人感悟)
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- thinkphp5 --接口实例
这是我自己构思的案例,写的不好请多多指教. 后台接口的代码: public function index() { $res = array(); header("Access-Control ...
- 【Linux常见命令】vimdiff命令
在类nuix平台,我们希望对文件之间的差异之间快速定位,希望能够很容易的进行文件合并……. 可以使用Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足所有这些需求,甚至能够提供更多的 ...
- JavaScript面向对象那些东西-继承
继承 父类里有些属性方法 子类想把父类中的这些属性方法 继承过来给子类自己的实例也用用 ( ps: →_→ 能不能专业点 没文化真可怕 ) 一.原型链继承 // 原型链继承:把子类的原型作为父类的实例 ...
- P3807【模板】卢卡斯定理
题解大部分都是递归实现的,给出一种非递归的形式 话说上课老师讲的时候没给代码,然后自己些就写成了这样 对于质数\(p\)给出卢卡斯定理: \[\tbinom{n}{m}=\tbinom{n \bmod ...
- MySQL 增删改查(单表)
1.sql 新增语句 表中插入数据 insert into + 表名 values(字段1value1,字段2value1,字段3value1),(字段1value2,字段2value2,字段3val ...
- 「newbee-mall新蜂商城开源啦」 前后端分离的 Vue 版本即将开源
新蜂商城 Vue 版本 2019 年 10 月份我在 GitHub 开源仓库中上传了新蜂商城项目的所有源码,至今已经有小半年的时间了,感兴趣的可以去了解一下这个 Spring Boot 技术栈开发的商 ...
- golang server示例
一个简单的web服务器 package main import ( "fmt" "log" "net/http" ) func main() ...
- 学习HTML
前端三剑客:HTML.CSS.JavaScript.现在就开始学习HTML啦. 学习资源:http://www.freecodecamp.cn/ 学习笔记: h1,head1,一级标题 <h1& ...