public void DrawSprite(string name, HUDAnchorMode mode, Vector2 offset) { if (!entries.ContainsKey(name)) { return; } var entry = entries[name]; var sprite = entry.sprite; var region = ProcessRelativePosition(mode, offset, sprite); GUI.DrawTexture(region, entry.sprite); }
public Rect ProcessRelativePosition(HUDAnchorMode mode, Vector2 offset, Texture2D sprite) { var region = new Rect(); if (sprite == null) { return(region); } if (mode.HasFlag(HUDAnchorMode.Right)) { region.x = Screen.width - sprite.width * scale - offset.x; } else { region.x = offset.x; } if (mode.HasFlag(HUDAnchorMode.Bottom)) { region.y = Screen.height - sprite.height * scale - offset.y; } else { region.y = offset.y; } if (mode.HasFlag(HUDAnchorMode.MiddleX)) { region.x = Screen.width / 2f - sprite.width * scale / 2f - offset.x; } if (mode.HasFlag(HUDAnchorMode.MiddleY)) { region.y = Screen.height / 2f - sprite.height * scale / 2f - offset.y; } region.width = sprite.width * scale; region.height = sprite.height * scale; return(region); }
public void DrawNumber(int num, HUDAnchorMode mode, Vector2 offset, float numScale = 1f) { if (!isNumbersFontLoaded) { LoadNumbersFont(); } char[] buf = num.ToString().ToCharArray(); var region = ProcessRelativePosition(mode, offset * numScale, GetSprite("num1")); region.width *= numScale; region.height *= numScale; foreach (var c in buf) { var spriteName = "num" + c; region.x += 11f * scale * numScale; GUI.DrawTexture(region, entries[spriteName].sprite); } }