OnGUI生命条缩放
本文关键字:缩放 生命 OnGUI | 更新日期: 2023-09-27 18:06:18
我正在尝试为一款使用OnGUI的2D游戏设置生命值条。我有一个外部纹理和一个内部纹理的仪表。我现在的设置部分有效。我可以改变内部仪表的比例,使它看起来像是在消耗,但是沿着x的位置也在变化。这会导致一个尴尬的效果,以及仪表移动到容器外。
void Update ()
{
score = EnemyScript.killCount * 100;
powerScale -= 1;
}
void OnGUI()
{
//Score and Power Containter
GUILayout.BeginArea(new Rect(Screen.width/8, Screen.height/8, 500, 200));
GUILayout.Label("Score: " + score, style);
GUI.DrawTexture(new Rect(-10,20,200,80),powerBoundry);
GUILayout.EndArea();
//Power Meter
GUILayout.BeginArea(new Rect(Screen.width/8, Screen.height/8, 450, 200));
GUI.DrawTexture(new Rect(-10,20,powerScale,80),powerFill, ScaleMode.ScaleAndCrop);
GUILayout.EndArea();
}
有可能将其锚定在适当的位置吗?或者让它成为游戏对象的子对象来锚定它?
尝试使用drawtexturewithtexcoord。
void OnGUI()
{
GUILayout.BeginArea(new Rect(Screen.width / 8, Screen.height / 8, 500, 200));
GUI.DrawTexture(new Rect(-10, 20, 200, 80), powerBoundry);
GUI.DrawTextureWithTexCoords(new Rect(-10, 20, powerScale, 80), powerFill, new Rect(0f, 0f, (float)powerScale / 200f, 1f));
GUILayout.EndArea();
}