Код: Выделить всё
void OnGUI()
{
if (group == null) return;
Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position + Vector3.up * 2.5f);
if (screenPos.z > 0)
{
float hp = group.GetHP();
Color oldColor = GUI.color;
if (hp > 0.6f)
GUI.color = Color.green;
else if (hp > 0.3f)
GUI.color = Color.yellow;
else
GUI.color = Color.red;
GUI.Label(new Rect(screenPos.x - 50, Screen.height - screenPos.y, 100, 20),
$"G{group.groupID}: {hp:P0}");
GUI.color = oldColor;
}
}

Я подозреваю, что OnGUI не является правильным подходом для элементов пользовательского интерфейса, привязанных к миру. Как рекомендуется отображать индикатор, который обеспечивает все следующие три пункта?
- Остается закрепленным над игровым объектом.
- Естественно масштабируется с расстоянием.
- Всегда обращен к камере.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ferent-dis
Мобильная версия