Unity 代码设置UI尺寸的一种方法

这篇具有很好参考价值的文章主要介绍了Unity 代码设置UI尺寸的一种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Unity中 UI的实际宽高可以通过rect.size获得,但是这个属性是只读的无法修改。
所以想要修改尺寸,通常有两种方式
方法1:使用rect.SizeDelta来修改UI的大小,而SizeDelta会根据锚点设置的不同变化,数值上也不直观,不便于操作
方法2:使用SetSizeWithCurrentAnchors方法设置宽高

但是突然想用SizeDelta 用公式设置一下

unity设置ui大小,unity,ui,游戏引擎

在RectTransform中
rect.min表示物体左下角,相对物体中心(Pivot)为原点的位置
rect.max表示物体的右上角,相对物体中心(Pivot)为原点的位置
offsetMax表示表示物体左下角相对锚点的左下角的偏移
假设锚点左下角的点anchorMinPos是以相对物体中心(Pivot)为原点的位置
那么offsetMin=rect.min-anchorMinPos
同理 offsetMax=rect.min-anchorMaxPos
而sizeDelta=offsetMax-offsetMin;
代入可得
sizeDelta=rect.max-rect.min-(anchorMaxPos-anchorMinPos)
这里可以看出
rect.max-rect.min 表示的就是UI实际宽高的rect.size
sizeDelta=rect.size-(anchorMaxPos-anchorMinPos)
anchorMaxPos-anchorMinPos 表示的就是锚点形成的矩形宽高的vector2
而锚点是随着父物体变化的, 改变物体尺寸时候并不会影响锚点变化,在改变物体尺寸时候rect.size改变的偏移量 等同于sizeDelta改变的偏移量文章来源地址https://www.toymoban.com/news/detail-782252.html

 public static void SetSize(RectTransform rectTrans, Vector2 newSize)
    {
        Vector2 oldSize = rectTrans.rect.size;
        Vector2 offset = newSize - oldSize;
        rectTrans.sizeDelta = rectTrans.sizeDelta + offset;
    }

到了这里,关于Unity 代码设置UI尺寸的一种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何通过代码在Unity设置URP通用渲染管线资源的画质选项、后处理效果、渲染分辨率、抗锯齿效果、Renderer Features等效果并制作一个可以设置它们的UI

       Hello喔 这里是没有鱼的猫先生,本期文章的主题佬们有看到标题了 QWQ    当使用Urp管道项目时,我们需要在一个Urp通用管线资源的项目中修改它的各种效果以玩家自己设置不同的画质需求,那下面这个通用脚本便诞生了,它也许并不适用于所有的场景,但是相信应用过它

    2024年02月09日
    浏览(30)
  • 辨别貔貅币的一种代码思路

    说在前头 Web3是一种新兴的网络概念,由于某些原因导致我们能够接触到的相关技术知识实在有限,每当我遇见技术瓶颈总是不能找到充足的资料,这也让我萌生了填补这片空白知识的冲动。 “Hello Web3” 这个专栏会尽力将我掌握的web3 知识分享给大家。如果分享的知识能帮助

    2024年02月05日
    浏览(33)
  • Element UI 中 el-input 标签去掉边框的一种办法

    最近在做一个简单的页面,想把 el-input 去掉边框,在网上找了很多方法,最终发现下边这种方法是可行的: HTML代码: 样式代码如下: 注意这里的样式语言用的是 less,其深度穿透写法是 /deep/。 由此便可去除 el-input 的外边框。

    2024年02月16日
    浏览(33)
  • Unity连接蓝牙设备的其中一种方法(不一定通用,但思路也许可以)

            需要输入配对码进行配对,并且要配对成功,连接成功,之后Windows系统会自动分配一个COM端口给该蓝牙设备使用,是长期预留的那种端口,长期预留给该设备。         也就是是说,若干年以后,如果蓝牙设备启动并连接到电脑,这个设备占用的端口依然还是当初

    2024年02月02日
    浏览(25)
  • <Python>PyQt5中UI界面和逻辑函数分开写的一种方式

    前言 如果经常使用PyQt5这种模块来编写带UI界面的程序,那么很自然的就会涉及到,一旦程序比较大,UI控件多的时候,需要将UI和逻辑程序分离,这样方便管理,也方便维护。 配置: 平台:windows 工具:visual studio code 语言:python 库:PyQt5 本文将提供一个简单但可用的实例,

    2024年02月02日
    浏览(40)
  • 下载YouTube视频的一种方法

    yt-dlp 安装Python环境 pip install yt-dlp 默认格式,高于720P的格式一般是 webm 格式 yt-dlp https://youtu.be/sKrT6mBrosc 下载视频转换成mp4(用–merge-output-format参数) yt-dlp –merge-output-format mp4 https://youtu.be/sKrT6mBrosc 1.只下载音频 找m4a格式,列表越靠后越清晰。比如ID:140 | EXT:m4a | audio onl

    2024年02月13日
    浏览(44)
  • 【Android】RecyclerView实现列表中的Item之间设置间距的一种方式

    RecyclerView 的 Item 默认没有间距是因为 RecyclerView 是一个高度自定义的控件,它的目标是提供一个高效灵活的列表展示,并且适应各种不同的布局需求。 为了让开发者能够充分自定义列表项的布局和样式,RecyclerView 没有默认设置项来添加 item 之间的间距。这样设计的好处是,

    2024年02月13日
    浏览(39)
  • 【Unity小技巧】最简单的UI设置适配方案

    这期来讲一个简单的UI设计方案,很多同学可能搞不懂锚点、轴心这些概念,导致做好的UI在别人的设备上,乱跑或者是重叠,或者是参加游戏老发时间比较紧来不及做适配,都可以来试试这个方法,通过填充边框来保持游戏画面的原始比例,所以它的缺点也很明显,在一些移

    2024年02月04日
    浏览(27)
  • 不支持请求方法POST或GET的一种解决方法

    Request method ‘POST‘ not supported(已解决) 该错误一般是请求类型对不上导致的,比如PostMapping和GetMapping请求,一般错误发生在下图所示位置,我把Post和Get搞错了。 值得说的一点是,因为我不确定是不是这里错了,所以一开始我并没有把GetMapping注释掉,我认为在下面加上PostMa

    2024年02月12日
    浏览(36)
  • 人脸识别平台批量导入绑定设备的一种方法

            因为原先平台绑定设备是通过一个界面进行人工选择绑定或一个人一个人绑定设备。如下:  但有时候需要在几千个里选择出几百个,那这种方式就不大现实了,需要另外一种方法。   目前相到可以通过导入批量数据进行绑定的方式。 一、前端 主要是显示选择文件

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包