【发布时间】:2015-10-26 19:16:02
【问题描述】:
标题可能没有意义但我不知道如何解释它......我可以在这里更好地解释。
我正在制作一个 3D 游戏,我将 hud 设置在左下角,它会 当我调整窗口大小/选择不同的分辨率时调整大小和调整,但健康/口渴栏停留在一个区域并且不会随之调整并停留在面板顶部...
例如,如果 hud 位于左下角,当我调整大小和更改分辨率时,健康口渴栏保持在左侧,但它们在屏幕中间向上移动希望这是有道理的,类似的东西在这里是我的代码提前谢谢:)!
var hudSize : Vector2 = new Vector2(244, 500);
var size : Vector2 = new Vector2(240, 40);
var thirstSize : Vector2 = new Vector2(244,60);
var healthPos : Vector2 = new Vector2(20, 20);
var healthBarDisplay : float = 1;
var healthBarFull : Texture2D;
var hungerPos : Vector2 = new Vector2(20, 60);
var hungerBarDisplay : float = 1;
var hungerBarFull : Texture2D;
var thirstPos : Vector2 = new Vector2(20, 100);
var thirstBarDisplay : float = 1;
var thirstBarFull : Texture2D;
var healthFallRate : int = 150;
var hungerFallRate : int = 150;
var thirstFallRate : int = 100;
var hudPos : Vector2 = new Vector2(0, 0);
var hudDisplay : Texture2D;
var canJump : boolean = false;
var jumpTimer : float = 0.7;
function Start()
{
onMotor = GetComponent(CharacterController);
controller = GetComponent(CharacterController);
}
//OnScreenDrawing Textures
function OnGUI()
{
GUI.DrawTexture(new Rect (0, Screen.height - 125,244,125), hudDisplay);
//HealthBar
GUI.BeginGroup(new Rect (healthPos.x, healthPos.y, size.x, size.y));
GUI.BeginGroup(new Rect (0, 0, size.x * healthBarDisplay, size.y));
GUI.DrawTexture(Rect(0, 0, size.x, size.y), healthBarFull);
GUI.EndGroup();
GUI.EndGroup();
//ThirstBar
GUI.BeginGroup(new Rect (thirstPos.x, thirstPos.y, size.x, size.y));
GUI.BeginGroup(new Rect (0, 0, thirstSize.x * thirstBarDisplay, thirstSize.y));
GUI.DrawTexture(Rect(0, 0, thirstSize.x, thirstSize.y), thirstBarFull);
GUI.EndGroup();
GUI.EndGroup();
}
function Update()
{
if(hungerBarDisplay <= 100)
{
healthBarDisplay -= Time.deltaTime / healthFallRate * 2;
thirstBarDisplay -= Time.deltaTime / thirstFallRate * 5;
}
}
【问题讨论】:
-
为什么人们还要费心使用旧的 GUI 代码。只需更新到 4.6 并使用新的 UI 系统。您甚至不必编写任何代码,它会自行调整大小。
-
因为人们可能是该语言的新手并且不了解它?那个怎么样。
-
但它不是一种语言,它只是使用编辑器中已经制作的东西,不涉及编程。如果人们下载了最新版本的 unity 并简单地观看了关于 UI 的单个教程,那么不会有问题。例如youtube.com/watch?v=rsZM3q74Q2k
标签: user-interface unity3d resize unityscript