我试图在android的屏幕变为纵向或横向时在我的recttransform中进行更改,但是代码只读取了screenrotation纵向,其他都无法正常工作。我不知道为什么。

    if (Screen.orientation == ScreenOrientation.Portrait)
    {
        rectTransform.anchoredPosition = new Vector2(0, 50);
        rectTransform.sizeDelta = new Vector2(800, 100);
    }

    if(Screen.orientation == ScreenOrientation.Landscape)
    {
        rectTransform.anchoredPosition = new Vector2(0, 33);
        rectTransform.sizeDelta = new Vector2(800, 75);
    }
}


}

最佳答案

您正在使用的API(Screen.orientation)用于设置不同的定向行为。如果要读取当前值,则需要Input.deviceOrientation并检查其返回的DeviceOrientation对象:

if (Input.deviceOrientation == DeviceOrientation.Portrait ||
    Input.deviceOrientation == DeviceOrientation.PortraitUpsideDown)
{
}
else if (Input.deviceOrientation == DeviceOrientation.LandscapeLeft ||
    Input.deviceOrientation == DeviceOrientation.LandscapeRight)
{
}




另外,要排除这种情况(以防万一):确保在ProjectSettings> Player检查器中,在选择了Android的情况下,在“分辨率和演示文稿”下,确保您的应用程序允许设备将“默认方向”设置为“自动旋转”和“允许自动旋转的方向”包含您想要的内容。

10-01 05:59