【发布时间】:2019-02-14 06:36:54
【问题描述】:
我不明白我在这里做错了什么。我正在尝试以下方法:
1) 在 UI 场景中放置 4 x 图像(卡片)
public Image aceHeartZone, aceClubZone, aceDiamondZone, aceSpadeZone;
2) 在编辑器中,ace 牌与普通牌处于相同的层次结构中:
3) 我将 AceXX 卡片中的位置复制到 Vector2 属性中
zone10 = aceHeartPos.rectTransform.localPosition;
zone20 = aceClubPos.rectTransform.localPosition;
zone30 = aceDiamondPos.rectTransform.localPosition;
zone40 = aceSpadePos.rectTransform.localPosition;
4) 在卡片上我有以下 sn-p:
_x = _prep.zone10.x;
_y = _prep.zone10.y;
myRectTransform.anchoredPosition = new Vector2(_x, _y);
5) 卡片位置不正确:
在实际卡片图像的后面是王牌卡片图像,这是我选择位置的地方
问题: 我在这里做错了什么?
【问题讨论】:
-
取决于您的设置。两组位置都在世界空间还是屏幕空间?你确定你没有混合两个坐标系吗? --- 两个图像集的原点/根是否相同?即中心,还是同一个角落?如果根在一个角落,图像本身的大小是否相同?假设左上角是原点,您确定 ace 牌的图像没有透明边框/悬垂,这会导致普通牌以左上角偏移(在透明部分的边缘)定位吗? --- 由于您提供的信息有限,几乎不可能知道出了什么问题...
-
请检查documentation 并仔细阅读定位 UI 元素部分。此外,如果您仔细查看您的代码,您会发现您正在尝试将
rectTransform.localPosition分配给rectTransform.anchoredPosition -
对“localPosition”与“rectTransform”的正确评论,我复制了我的测试。现在有区别了。
标签: c# unity3d unity3d-gui