gpt4 book ai didi

user-interface - 查找 Unity UI 元素的世界空间坐标

转载 作者:行者123 更新时间:2023-12-04 06:42:45 25 4
gpt4 key购买 nike

所以根据Unity文档RectTransform.anchoredPosition如果 anchor 在 RectTransform 的枢轴点处接触,则将返回 UI 元素的屏幕坐标。但是,如果它们分开(在我的情况下位于矩形的角落),它们将为您提供 anchor 相对于枢轴点的位置。这很好,除非您想通过多种分辨率保持 UI 对象的适当尺寸,并同时根据该位置定位不同的对象。

让我们分解一下。我有对象 1 和对象 2。 object1 位于 (322.5, -600) 并且当 anchor 在对象 anchoredPosition 的中心(枢轴)处相遇时,就返回该位置,而 object2 的位置恰到好处。另一方面,一旦我将 anchor 放置在 object1 anchoredPosition 的 4 个角上,就会返回 (45.6, -21)。那只是不好。我什至尝试过使用 Transform.position然后 Camera.WorldToScreenPoint() ,但这对让我实现目标几乎起到了同样的作用。

我希望你能帮我找到一种方法来获得这个对象的实际屏幕坐标。如果有人对此主题有任何见解,将不胜感激。

备注:我已经尝试使用 RectTranfrom.rect.center 并返回 (0, 0)

我也调查过 RectTransformUtility那些辅助函数已经完成了所有的深蹲。

最佳答案

anchoredPosition 返回“此 RectTransform 的枢轴相对于 anchor 引用点的位置。”它与屏幕坐标或世界空间无关。

如果您正在 Unity 中查找 UI 元素的屏幕坐标,您可以使用 rectTransform.TransformPointrectTransform.GetWorldCorners获取任何 Vector3你需要在世界空间。无论您决定使用哪个,您都可以将它们传递给 Camera.WorldToScreenPoint()

关于user-interface - 查找 Unity UI 元素的世界空间坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30103675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com