Unity UI画布下的子节点坐标加上父节点的偏移量
时间: 2023-07-09 17:32:58 浏览: 224
如果要将Unity UI画布下的子节点坐标加上父节点的偏移量,可以使用RectTransform.anchoredPosition属性和RectTransform.localPosition属性。RectTransform.anchoredPosition属性表示相对于父节点的偏移量,RectTransform.localPosition属性表示相对于父节点的本地坐标。
下面是一个使用RectTransform.anchoredPosition和RectTransform.localPosition属性的示例代码:
```csharp
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
public RectTransform parentRect;
public RectTransform childRect;
private void Update()
{
// 获取子节点的相对偏移量
Vector2 anchoredPos = childRect.anchoredPosition;
// 将子节点相对偏移量加上父节点的本地坐标
Vector3 localPos = parentRect.localPosition + new Vector3(anchoredPos.x, anchoredPos.y, 0f);
// 显示子节点相对于父节点的世界坐标
Debug.Log("World pos: " + parentRect.TransformPoint(localPos));
}
}
```
在这个示例中,我们首先获取了父节点和子节点的RectTransform组件parentRect和childRect。在Update方法中,我们获取子节点的相对偏移量,并将其与父节点的本地坐标相加得到子节点相对于父节点的本地坐标。最后,我们调用parentRect.TransformPoint方法将子节点相对于父节点的本地坐标转换为世界坐标,并将世界坐标的值输出到控制台上。
阅读全文