我的GUI框和标签是由坐标设置的。当它们在构建时离开屏幕时,我将如何设置它们以随分辨率和屏幕尺寸缩放。GUI显示在屏幕左上角的第一个IF语句,然后是右上角显示的next语句!代码示例将非常有用!
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);
}
}
}
}发布于 2015-09-08 19:27:54
您可以使用Screen类来获取当前的Screen.width和Screen.height,并在更改时创建一些内容来重新计算您的图形用户界面坐标。如果你的游戏摄像头没有使用整个屏幕,你可以让Camera.current.pixelWidth/pixelHeight来做同样的事情。
如果你想要一个响应式的UI,你应该避免坐标,并使用GUILayout而不是GUI类来声明你的组件,这是更好和更容易的调整,而不是大量的手工计算,这可能会破坏你的性能。
发布于 2015-09-08 19:37:17
只需为图形用户界面的宽度和x位置使用Screen.width,为图形用户界面的高度和y位置使用Screen.height。例如:,对于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");但第一个会有反应。
https://stackoverflow.com/questions/32455800
复制相似问题