Подскажите в чем проблемка. Суть такова, когда в баре становиться меньшее значение то этот бар смещается немножко влево, (на месте не стоит). Если есть у кого немного времени подскажите.
using UnityEngine;
Код
using System.Collections; public class hpbar : MonoBehaviour { public float HungerTime = 1; public float WaterTime = 1; public float HungerTimeSet = 1; public float WaterTimeSet = 1; public float Health = 100; public float MaxHealth = 100; public float Hungreed = 500; public float Water = 15; public float MaxHungreed = 500; public float MaxWater = 500; public float BulletDamage = 15; public float Hungreedplas = 30; public float Waterplas = 15; public Texture2D hp; public Texture2D timer; void Start (){ Hungreed = MaxHungreed; Health = MaxHealth; Water = MaxWater; } void Update (){ if(Health<=0){ Health=0; Destroy(gameObject); } if (HungerTime>0){ HungerTime -=Time.deltaTime; } if (HungerTime<0){ Hungreed -=0; HungerTime = HungerTimeSet; } if(WaterTime>0){ WaterTime -=Time.deltaTime; } if(WaterTime<0){ Water -=1; WaterTime = WaterTimeSet; } if(Water==-1){ Water=0; } if(Water<=0){ Health -= 0.01f; } } void OnTriggerEnter ( Collider Collider ){ if (Collider.tag == "Bullet"){ Health -= BulletDamage; } if (Collider.tag == "Hungreedplas"){ Hungreed += Hungreedplas; Destroy(Collider.gameObject); } if (Collider.tag == "Water"){ Water += Waterplas; Destroy(Collider.gameObject); } } void OnGUI (){ GUI.DrawTexture ( new Rect (Screen.width - 900, Screen.height - 470, 1 * Health, 60), hp); GUI.DrawTexture ( new Rect (Screen.width - 900, Screen.height - 450, 1 * Water, 60), timer); }
Сделать так, что бы Health не был отрицательным значением. Я так понимаю при отнятии хп, если оно равное 0, то у тебя выходит отрицательное значение хп и бар начинает расти в левую сторону? Используй ограничитель тогда Mathf.Clamp В Update что то вроде этого Health = Mathf.Clamp(Health , 0, 100);