using UnityEngine; using UnityEngine.UI; public class HealthBarManager : MonoBehaviour { private float playerHealth; public float sliderValue = 100.0f; public GameObject centerBar; private Transform centerBarTransform; public GameObject rightBar; private Transform rightBarTransform; public Image centerBarSprite; public Image rightBarSprite; // public Image leftBarSprite; private float shownHealth; public Image skullSprite; private Transform centerBarPosition; private float centerBarOriginalHeight; private float centerBarOriginalWidth; private Vector2 originalSizeDelta; // Start is called once before the first execution of Update after the MonoBehaviour is created void Awake() { centerBarOriginalWidth = centerBarSprite.sprite.rect.width; centerBarOriginalHeight = centerBarSprite.sprite.rect.height; skullSprite.enabled = false; originalSizeDelta = centerBarSprite.rectTransform.sizeDelta; } // Update is called once per frame void FixedUpdate() { playerHealth = GameObject.Find("GameData").GetComponent().CurrentHealth; if (playerHealth > 0) { centerBarSprite.enabled = true; rightBarSprite.enabled = true; // leftBarSprite.enabled = true; skullSprite.enabled = false; shownHealth = playerHealth; } else { shownHealth = 0; centerBarSprite.enabled = false; rightBarSprite.enabled = false; // leftBarSprite.enabled = false; skullSprite.enabled = true; } // add lerp function for health float healthIncrement = (shownHealth - sliderValue) * 0.1f; sliderValue += healthIncrement; centerBarSprite.rectTransform.sizeDelta = new Vector2(originalSizeDelta.x * sliderValue / 100.0f, originalSizeDelta.y); // centerBarPosition = centerBar.GetComponent(); centerBarTransform = centerBar.GetComponent(); centerBarTransform.position += Vector3.right * healthIncrement * 1.1f; rightBarTransform = rightBar.GetComponent(); rightBarTransform.position += Vector3.right * healthIncrement * 2f * 1.1f; } }