我试图在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的情况下,在“分辨率和演示文稿”下,确保您的应用程序允许设备将“默认方向”设置为“自动旋转”和“允许自动旋转的方向”包含您想要的内容。