UI坐标变换/转换
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/4167187.html
InverseTransformPoint #
Transform.InverseTransformPoint :相对于谁的坐标。如果是相对2D UI,请使用localposition,如果是3D场景,请使用position
文档#
http://www.ceeger.com/Script/Transform/Transform.InverseTransformPoint.html
UI结构#
UIRoot/PanelRoot/Center/Battle/BuffsOnHero/BuffIconTemplate (这是buff图标)
UIRoot/PanelRoot/Center/Battle/BuffDetail (这是buff详细信息窗口)
UI坐标变换需求#
BuffDetail的坐标和BuffIconTemplate顶对齐,就是按住不同的图标,弹出窗口的Y和图标的Y相同。
思路分析#
BuffDetail 和BuffIconTemplate 的父节点,同级(这一点很重要)
1、获得BuffIconTemplate的UI坐标的Y设置成BuffDetail的Y
涉及到UI坐标的转换。
实现方法#
//获取图标相对于父节点的UI坐标
var localPos = transform.InverseTransformPoint(BuffIconTemplate.transform.position); //窗体和Buff图标的坐标顶对齐,和buffTable的右侧有一个offset var offX = localPos.x - BuffWinBg.width * 0.5f - 70;
BuffDetailWindow.localPosition = new Vector3(offX, localPos.y, localPos.z);
解释:Transform.InverseTransformPoint 相当于把buffIconTemplate从父节点拉出来,获取它在UI上的localposition,如下图所示
附加资料#
UICamera下的gameobject 使用localpostion
SceneCamera下的gameobject 使用wordpostion
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验