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属性 ...
随机推荐
- python-trade
https://tool.lu/pyc/在线反编译pyc import base64 correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt' flag = base64.b6 ...
- Android | 教你如何使用HwCameraKit接入相机人像模式
目录 介绍 简介 关于本次CodeLab 你将建立什么 你会学到什么 你需要什么 申请Camera相关权限 集成HwCameraKit开放能力 步骤1 模式创建:获取CameraKit实例,创建人像模 ...
- 对于WebP格式入门解读
因为项目中需要用到大量动画效果,前期尝试过几种方案,比如GIF.帧动画.lottie.SVGA等格式的动画渲染方案,发现都存在各式各样的问题.比如: 1,GIF格式.5秒的动画,一张图大小可能就会达到 ...
- Java中的小数运算与精度损失
float.double类型的问题 我们都知道,计算机是使用二进制存储数据的.而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在 ...
- linux 二级目录结构
Linux系统里面目录的顶点都是根 /etc /etc/passwd : Linux用户登陆的文件 /etc/group : 存放Linux用户组的文件 /etc/shadow :存放用户密码的文件 ...
- Rancher流水线配置文档
2019独角兽企业重金招聘Python工程师标准>>> 一.概述 Rancher流水线从逻辑上可以分为两部分,即CI和CD. CI,可分化为克隆代码.代码打包.发布镜像三部分. CD ...
- Unity(GameObject)
####1. 这个方法用于发送一个数据到指定的方法中,第三个参数是是否强制接收 以下三种方法发送消息的形式,各有不同的效果,可以通过第一个参数指定要发送的方法名名,第二个是发送的参数值,第三个参数是是 ...
- RF(自定义关键字)
1.在 D:\work_software\python\Lib\site-packages 文件夹下, 新建 python package 包 ,例如我的是 TestLibrary 建好后的完整路径: ...
- unittest(生成测试报告)
1.先导入HTMLTestRunner模块 见上篇HTMLTestRunner模块生成文档 2.实例如下 (1)单用例文件执行且生成报告 import unittest import HTMLTest ...
- springboot中json转换LocalDateTime失败的bug解决过程
环境:jdk1.8.maven.springboot 问题:前端通过json传了一个日期:date:2019-03-01(我限制不了前端开发给到后端的日期为固定格式,有些人就是这么不配合), ...