public class BarScript : MonoBehaviour
{
[SerializeField]
private float fillAmount;
[SerializeField]
private Image content;
[SerializeField]
private float lerpSpeed;//๋ณด๊ฐ์๋,์ฑ์ฐ๋ ์๋
[SerializeField]
private Color fullColor;
[SerializeField]
private Color lowColor;
[SerializeField]
private bool lerpColors;
public float MaxValue { get; set; }
/*
getter/setter ์ฌ์ฉ์ด์ =๋ฐ์ดํฐ ๋ณดํธ์ ํ ๋น๋ ๊ฐ์ด ์ด๋ค ๊ธฐ์ค์ ์์ด์ผํ ๋ setter๋ฅผ ์ฌ์ฉํ๊ณ
getter๋ ๊ทธ์ ๋ฐ๋ผ ํ์ฐ์ ์ผ๋ก ๋ฐ๋ผ์ด(ex: 1๊ณผ 10์ฌ์ด์ ์ซ์๋ง ๋ถ๋ฌ์ค๊ณ ์ถ์๋, 1~10์กฐ๊ฑด ๋ฃ๊ณ , ๊ทธ ์ธ์ ์ซ์๋ ์์ธ์ฒ๋ฆฌํด๋ฒ๋ฆผ
*/
public float Value//setter ํจ์๋ฅผ ์ฑ์๋ฃ์, getter ์ฑ์๋ฃ์ ํจ์๋ฅผ ๋ถ๋ฌ์ด
{
set
{
fillAmount = Map(value, 0, MaxValue, 0, 1);//value๋ stat์์ ๋ฐ์์ด
}
}
// Start is called before the first frame update
void Start()
{
if(lerpColors)
{
content.color = fullColor;
}
}
// Update is called once per frame
void Update()
{
HandleBar();
}
private void HandleBar()
{
if(fillAmount !=content.fillAmount)
{
content.fillAmount = Mathf.Lerp(content.fillAmount,fillAmount,Time.deltaTime*lerpSpeed);//Map(53,0,100,0,1);//fillAmount;// ex:(53,0,100,0,1)=53%,Lerp speed๋ HP๋ฐ ์๋ ์กฐ์
}
if (lerpColors)
{
content.color = Color.Lerp(lowColor, fullColor, fillAmount);
}
}
/// <summary>
/// Hp bar
/// </summary>
/// <param name="value">ํ์ฌ ์ฒด๋ ฅ</param>
/// <param name="inMin">Hp_Bar_์ต์๊ฐ</param>
/// <param name="inMax">HP_Bar_์ต๋๊ฐ(์ต๋ ์ฒด๋ ฅ)</param>
/// <param name="outMin">๋น์จ</param>
/// <param name="outMax">๋น์จ</param>
/// <returns></returns>
private float Map(float value, float inMin,float inMax, float outMin, float outMax)
{
return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;
//์ฒด๋ ฅ ๋น์จ์ .
}
}
์ด๋ ๊ฒ ํ๋ฉด ๋ฎ์ ์ฒด๋ ฅ ๋น์จ๋ก ๊ฐ์๋ก ์ ๋ํฐ ์์ง์์์ ์ง์ ํ ์๊น low Color๋ full Color๋
์ฒด๋ ฅ ๋น์จ์ ๋ฐ๋ผ์ Lerp ์ฆ ๋ณด๊ฐ ํด์ ์๊น์ด ๋ฐ๊ปด์ผํ ํ
๋ฐ
๋ฐ๋์ง ์๋ค. Lerp bool์ ์ฒดํฌํด๋ ์๋จ.
๋ญ๊ฐ ๋ฌธ์ ์ง
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๊ทธ๊ฑฐ๋ ๊ทธ๋ฅ HP๋ฐ๊ฐ ์ฐจ์ค๋ฅด๊ฑฐ๋ ์์ฐจ์ค๋ฅด๋ ์ ๋๋ง ๋จ
๊ณต๊ฒฉ ๋ฐ์ ํธ๋ฆฌ๊ฑฐ ์๋์ -10 ๊น์ด๋ฉด์ ์ฒด๋ ฅ ๊น์ด๋๊ฑด ํ๋๋ฐ
์ผ๋จ ์ด๊ฑด ๋ ๋๊ณ ๋๋จธ์ง ํด์ผ๊ฒ ๋ค. 3์๊ฐ ๊ฒ์ํด์ ๋ง๋ค์๋๋ฐ ์๋๋ ํ๋ฌดํ๋ค