UI坐标变换/转换

InverseTransformPoint

Transform.InverseTransformPoint :相对于谁的坐标。如果是相对2D UI,请使用localposition,如果是3D场景,请使用position

文档

http://www.ceeger.com/Script/Transform/Transform.InverseTransformPoint.html

 

UI结构

image

image

UIRoot/PanelRoot/Center/Battle/BuffsOnHero/BuffIconTemplate  (这是buff图标)

UIRoot/PanelRoot/Center/Battle/BuffDetail  (这是buff详细信息窗口)

 

UI坐标变换需求

BuffDetail的坐标和BuffIconTemplate顶对齐,就是按住不同的图标,弹出窗口的Y和图标的Y相同。

image

 

思路分析

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,如下图所示

image

 

附加资料

UICamera下的gameobject 使用localpostion

SceneCamera下的gameobject 使用wordpostion

相关文章

前言 本文所指的google类vr设备是指: 谷歌的Cardboard、三星Gear VR、暴风魔镜等这样的手机VR盒子,而...
ImageTarget 前言 ImageTarget 顾名思义,就是图像识别,本文记录下作者最近学习vuforia中的imageTarge...
前言 关于google vr sdk的具体使用,传送门 Gvr SDK for Unity 分析(一) Google Daydream平台已经整合进...
VuMark 准备知识 Vumark的说明: https://library.vuforia.com/articles/Training/VuMark https://libr...
环境 引擎: Unity 5.3.6f1 SDK: Vuforia 6.0.112 测试系统:Android 4.2/4.3 6.0 Android 6出错 在Andr...
前言 最近VR如火如茶,就学习就落伍啦,所以有空闲时间研究下相关知识。 本文介绍了两种方法来制作VR场...