假设我有一个Image
这样的用户界面:
+-+ Width = 128
|A| Height = 640
|B| Anchors (0,0,0,0)
|C| Pivot (0,0)
|D| Rotation (0,0,0)
*-+ Scale (1,1,1)
注意*
是枢轴点,它位于左下角。我想Image
用 rotation旋转这个 UI z = -90.0f
。当我这样做时,我有一个这样的盒子:
Width = 128
Height = 640
Anchors (0,0,0,0)
Pivot (0,0)
Rotation (0,0,-90)
*----+ Scale (1,1,1)
|DCBA|
+----+
请注意,*
是枢轴点,它不再位于左下角,而是位于左上角。从 3D / 数学的角度来看,一切都是合乎逻辑的......但对于我这个 2D / 像素人来说却不是。我有两个问题:
*
=支点是在左上现在。这是我希望最终位置的方式:
Width = 640
Height = 128
Anchors (0,0,0,0)
+----+ Pivot (0,0)
|DCBA| Rotation (0,0,0)
*----+ Scale (1,1,1)
它在“ click
”事件上。这是我的代码:
public void OnPointerClick(PointerEventData eventData)
{
if (MenuMain.ModeRotateIsActivated) {
eventData.pointerPress.transform.Rotate(new Vector3(0f, 0f, -90f));
/* maybe use / change rt after that?
RectTransform boat_rt =
eventData.pointerPress.GetComponent<RectTransform>();
*/
}
}
我可以做些什么来像我想要的那样修改对象位置 + 枢轴?
你得不到你想要的,因为你想:
前三个中的每一个都与第四个互斥。
充其量您可以执行前三个操作,然后将图像作为位于正确角落且未应用旋转的空游戏对象的父级。但它不会是同一个对象,它将是一个父对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句