可伸缩的GUI框/标签
本文关键字:标签 GUI 可伸缩 | 更新日期: 2023-09-27 18:11:45
我的GUI框和标签是由坐标设置的。当它们离开屏幕时,我该如何设置它们以适应分辨率和屏幕大小。GUI显示在屏幕左上方的第一个IF语句,然后显示在屏幕右上方!代码示例将非常有帮助!
public void OnGUI()
{
if ((isClicked) && (cdrwModel))
{
GUI.contentColor = Color.white;
GUI.Label(new Rect(5, 5, 400, 400), "<color=cyan><size=30>This is the </size></color>" + "<color=cyan><size=30>" + this.cdrw + "</size></color>");
GUI.Label(new Rect(15, 35, 400, 400), "Press <TAB> for more information");
if (showGui)
{
GUI.contentColor = Color.white;
GUI.Box(new Rect(1000, 5, 400, 400), "What You Should Know");
GUI.Label(new Rect(1135, 5, 400, 400), "___________________");
GUI.Label(new Rect(1145, 23, 400, 400), "<color=cyan><size=20>The </size></color>" + "<color=cyan><size=20>" + this.cdrw + "</size></color>");
foreach (var file in _puzzlesFile)
{
GUI.contentColor = Color.white;
GUI.Label(new Rect(1000, 50, 400, 400), file);
}
}
}
}
您可以使用Screen类来获取当前Screen。宽度和屏幕。高度,并创建一些东西来重新计算GUI坐标时,它的变化。如果你的游戏摄像机没有使用整个屏幕,你可以使用camera .current。pixelWidth/pixelHeight
如果你想要一个响应式UI,你应该避免使用坐标并使用GUILayout而不是GUI类来声明你的组件,这是一种更好和更容易的方式来调整,而不需要大量的手工计算,可以(并且可能会)破坏你的性能。
直接使用Screen。宽度为GUI和屏幕的宽度和x位置。height表示GUI的高度和y位置。例如:如果屏幕分辨率为1024:640
GUI.Box(new Rect(Screen.width/10, Screen.height/10, Screen.width/3, Screen.height/5), "What You Should Know");
将创建一个与
相同的Gui框GUI.Box(new Rect(102.4f, 64, 341.3f, 128), "What You Should Know");
但是第一个会有响应