Files
daluandou/Assets/Script/UI脚本/SummonerHealthBarUI.cs
T
huadexuan 8d58c2223c 根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:
```
docs(readme): 更新文档说明

- 添加项目使用指南
- 完善API接口说明
- 修正错误的配置示例
```
2026-10-01 16:01:43 +08:00

55 lines
1.5 KiB
C#

using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 召唤师专属血条 UI:顶部 HUD 显示双方召唤师血量,区别于单位头顶血条。
/// </summary>
public class SummonerHealthBarUI : MonoBehaviour
{
[Header("UI 引用")]
public Image playerHealthFill;
public Image enemyHealthFill;
public Text playerHealthText;
public Text enemyHealthText;
[Header("召唤师引用")]
public GameObject playerSummoner;
public GameObject enemySummoner;
private WorldHealthBar playerHealthBar;
private WorldHealthBar enemyHealthBar;
private void Start()
{
// 获取双方召唤师的血条组件
if (playerSummoner != null)
{
playerHealthBar = playerSummoner.GetComponent<WorldHealthBar>();
}
if (enemySummoner != null)
{
enemyHealthBar = enemySummoner.GetComponent<WorldHealthBar>();
}
}
private void Update()
{
UpdateHealthBar(playerHealthBar, playerHealthFill, playerHealthText);
UpdateHealthBar(enemyHealthBar, enemyHealthFill, enemyHealthText);
}
private void UpdateHealthBar(WorldHealthBar healthBar, Image fillImage, Text healthText)
{
if (healthBar == null || fillImage == null) return;
float ratio = healthBar.currentHealth / healthBar.maxHealth;
fillImage.fillAmount = ratio;
if (healthText != null)
{
healthText.text = $"{Mathf.CeilToInt(healthBar.currentHealth)}/{Mathf.CeilToInt(healthBar.maxHealth)}";
}
}
}