程序员必知:UnityUGUI锚点快速定位(自适应)

简介: 程序员必知:UnityUGUI锚点快速定位(自适应)

1.编辑器脚本需要放到Editor文件夹下面

简单操作,快速让锚点分布在组件四个顶点

选中组件(可以单选,可以多选) 点击Tools/自适应锚点

代码如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEditor;

public class AnchorController

{

【MenuItem("Tools/自适应锚点")】

private static void SelectionAnchor()

{

GameObject【】 objs = Selection.gameObjects;

for (int i = 0; i < objs.Length; i++)

{

if (objs【i】.GetComponent() == null)

continue;

AnchorCon(objs【i】);

}//代码效果参考:http://www.ezhiqi.com/zx/art_22.html

}//代码效果参考:http://www.ezhiqi.com/bx/art_1905.html

private static void AnchorCon(GameObject obj)

{

//位置信息

Vector3 partentPos = obj.transform.parent.position;

Vector3 localPos = obj.transform.position;

//--获取rectTransform

RectTransform partentRect = obj.transform.parent.GetComponent();

RectTransform localRect = obj.GetComponent();

float partentWidth = partentRect.rect.width;

float partentHeight = partentRect.rect.height;

float localWidth = localRect.rect.width 0.5f;

float localHeight = localRect.rect.height 0.5f;

//-位移差--

float offX = localPos.x - partentPos.x;

float offY = localPos.y - partentPos.y;

float rateW = offX / partentWidth;

float rateH = offY / partentHeight;

localRect.anchorMax = localRect.anchorMin = new Vector2(0.5f + rateW, 0.5f + rateH);

localRect.anchoredPosition = Vector2.zero;

partentHeight = partentHeight 0.5f;

partentWidth = partentWidth 0.5f;

float rateX = (localWidth / partentWidth) 0.5f;

float rateY = (localHeight / partentHeight) 0.5f;

localRect.anchorMax = new Vector2(localRect.anchorMax.x + rateX, localRect.anchorMax.y + rateY);

localRect.anchorMin = new Vector2(localRect.anchorMin.x - rateX, localRect.anchorMin.y - rateY);

localRect.offsetMax = localRect.offsetMin = Vector2.zero;

}//代码效果参考:http://www.ezhiqi.com/bx/art_3895.html

}

踩的坑:(纳闷的一笔)

在预设物里面,用上面工具自适应之后保存,换一个预设物,在重新进刚刚的预设物里面,发现刚刚预设物的锚点跟没应用之前是一样的

最后解决办法

先取消自动保存(AutoSave),然后随便点击一个组件的锚点,用鼠标拖动一下,再用上面的锚点工具应用锚点,最后勾上自动保存,在切换一下预设物回来,发现锚点应用成功

比手动拖要快多了

如果喜欢,请点个赞吧,感谢

相关文章
|
2月前
|
小程序
小程序消除图片下边距的三个方法
小程序消除图片下边距的三个方法
48 11
|
5月前
|
程序员
程序员必知:UnityUGUI锚点快速定位(自适应)
程序员必知:UnityUGUI锚点快速定位(自适应)
44 1
|
4月前
|
前端开发
css实用技巧——给锚点定位添加偏移
css实用技巧——给锚点定位添加偏移
159 3
|
6月前
表格高度根据内容自适应的瀑布流
表格高度根据内容自适应的瀑布流
53 1
|
6月前
|
移动开发 前端开发 iOS开发
H5页面布局之图片液态化(自适应)处理简述
H5页面布局之图片液态化(自适应)处理简述
53 0
H5页面布局之图片液态化(自适应)处理简述
|
6月前
|
前端开发 容器
如何实现一个两栏布局,右侧自适应?三栏布局中间自适应?
要实现一个两栏布局,右侧自适应的效果,可以使用 CSS 的 Flexbox 或 Grid 布局来实现。以下是使用 Flexbox 实现的示例:
76 1
|
6月前
|
C++
[Halcon&定位] 解决Roi区域外的模板匹配成功
[Halcon&定位] 解决Roi区域外的模板匹配成功
204 0
|
前端开发 JavaScript
【前端三分钟】锚点自动跟随滚动定位
【前端三分钟】锚点自动跟随滚动定位
792 0
|
Web App开发 前端开发 JavaScript
网页自适应跟随系统深色模式
近几年,各个主流操作系统都逐渐开端注重深色方式,从而改善用户在环境光亮低时的阅读体验。随着水果在 iOS 13 与 macOS Mojave 中添加了深色方式,除了 Linux 以外一切的主流操作系统都曾经完成了系统层级的深色方式。Linux 由于 DE、WM 的种类繁杂暂时没有统一的标准,但目前可以经过深色 GTK+ 主题、阅读器插件等方式完成“伪全局”深色方式。既然有了系统层级的适配,阅读器就可以读取深色方式开关,从而完成网页的自顺应。这就是新标准 prefers-color-scheme。
1164 0
网页自适应跟随系统深色模式