using UnityEngine; using System.Collections; using UnityEngine.UI; public class HealthBarHUD : MonoBehaviour { [SerializeField] private Image _image; [SerializeField] private Sprite[] _textures; private float _percentagePerSlot; // Use this for initialization void Start () { _percentagePerSlot = 100.0f / _textures.Length; PlayerHealthUpdateEvent.handler += OnPlayerHealthUpdate; } void OnDestroy () { PlayerHealthUpdateEvent.handler -= OnPlayerHealthUpdate; } private void OnPlayerHealthUpdate (PlayerHealthUpdateEvent e) { if (!e.Victim.Identity.hasAuthority) return; float percentage = e.CurrentHealth / e.MaxHealth * 100; float slot = percentage / _percentagePerSlot; _image.sprite = _textures[Mathf.Clamp (Mathf.CeilToInt (slot), 0, _textures.Length - 1)]; } }