当前位置: 首页 > news >正文

Unity-RectTransform设置UI width

不知道有没人需要这样的代码,就是.sizeDelta //不确定是不是英文翻译的原因,基本很难理解,sizeDelta===Size,//未必完全正确,但这么写好像总没错过

//image 在一个UnityEngine.UI.Image 的数组内
        foreach (var image in lstOfButtons) {
            var rectangle =image.rectTransform.rect;
            rectangle.width = buttonSize.x;
            rectangle.height = buttonSize.y;
            //不能这么写
            //image.rectTransform..rect = rectangle;
            var t = image.GetComponent<RectTransform>();
            var RECT = t.rect;

            
            image.rectTransform.sizeDelta = buttonSize;//buttonSize 是 Vector2
        }

很多年前,分享过这个项目

Unity判断鼠标点击是否在某个窗口 RectTransform 内_unity rectanglecontainsscreenpoint-CSDN博客

原理

RectTransform是一个很特殊的存在//上面的代码已经明显,指出了

因为,一般人的理解

GameObject

Transform,

已经觉得Unity有些多此一举了

(实际上Transform 也是GameObject的一个Component)

应该是可以AddComponent<Transform>()不是么

但实际上只能,AddComponent<RectTransform>()

这是为什么呢

主要还是历史原因

我很难说这个结构到底有什么好,但古今中外,那么一二十年的游戏引擎经验,我从未见第二个个引擎能做到

(没有这个结构的,自以为简单的就是做不好)

很多引擎觉得transform多省事,就是

gameobject

---Transform

---Component

这样的结构多好,多简单

实际上,最重要的结构就是Unity隐藏起来的:RectTransform

这是一个特殊的Component,特殊的UI结构(也是必然的UI结构)

因为一个比较符号用户习惯的UI编辑器有三部分

RectTransform几乎完美的融合你这三部分(用最简单,最贴近用户的做法,虽然API名字有些怪异)

并不是程序正义,而是符合用户习惯。。。

相关文章:

  • wokwi arduino mega 2560 - 模数与数模转换AD和DA
  • 设置git拉取的文件换行格式
  • Codeforces Round 1013 (Div. 3)
  • 企业入驻成都国际数字影像产业园,可享150多项专业服务
  • AwesomeQt分享(含源码)
  • Leetcode 路径总和 III
  • 振弦采集读数仪 智能型 支持振弦、温度、电压、电流测量,无线传输 自动化操作 适用地质灾害与土木工程监测
  • Java条码与二维码生成技术详解
  • 3.2 罗必达法则
  • 23种设计模式-状态(State)设计模式
  • Vala编成语言教程-构造函数和析构函数
  • SQL注入零基础学习二MYSQL手工注入
  • 23种设计模式中的中介者模式
  • 腾讯pcg客户端一面
  • 【移动应用开发】任务4 创建系统主界面
  • 【AVRCP】深度解析蓝牙高速(AMP)在封面艺术传输中的应用:低延迟体验的工程实践
  • java使用小知识合集(持续更新中)
  • etcd性能测试
  • 前端空白/红幕报错 undefined
  • Tensorrt的安装、转化、以及推理
  • 比特币价格重返10万美元,哪些因素使然?
  • 湖南省职业病防治院通报3岁女童确诊“铊中毒”:去年病例,编辑误写为“近日”
  • 2025中国南昌国际龙舟赛5月23日启幕,是历年来南昌举办的最高规格龙舟赛事
  • 印巴战火LIVE丨印巴互相发动无人机袭击,巴官员称两国已在国安层面接触
  • 印媒证实:至少3架印军战机7日在印控克什米尔地区坠毁
  • 外交部:中方和欧洲议会决定同步全面取消对相互交往的限制