我们假设我有一个像这样的用户界面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
轮换此用户界面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 / Pixel的我。
我有两个问题:
*
=轴心点现在位于左上角。以下是我对最终职位的看法:
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>();
*/
}
}
我可以做什么来修改对象位置+枢轴,就像我想要的那样?
答案 0 :(得分:1)
你不能得到你想要的东西,因为你想:
前三个中的每一个都与第四个互斥。
最好你可以执行前三个动作,然后将图像父级放到另一个空的GameObject中,该游戏对象位于正确的角上并且没有应用旋转。但它不会成为同一个对象,它将成为父对象。